Opened 20 years ago
Last modified 20 years ago
#1468 closed Patch
Splitter position not save correct
Reported by: | tommywu | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Other |
Keywords: | Cc: | tommywu, Tim Kosse | |
Component version: | Operating system type: | ||
Operating system version: |
Description
Queue splitter postion not save correct if site manager
open on startup.
Attachments (4)
Change History (16)
by , 20 years ago
Attachment: | filezilla_size.patch added |
---|
comment:1 by , 20 years ago
Thanks, applied.
Btw, there's a slight problem with your patches: Between the
block header lines there are unix style line endings, while
between the patch data, there are DOS style line endings.
This confuses my text editor.
comment:2 by , 20 years ago
Sorry about the format, because I use MSYS's diff to
generate patch from Windows. The source files using DOS
style, but the diff command using unix style.
Which style should I use next time? Is unix style ok for you?
I'll run dos2unix before I run diff command, this will
generate unix style patch file. Just like the new patch I
just sent for patch #1163490.
by , 20 years ago
Attachment: | filezilla_size_2.patch added |
---|
splitter position not save correct if site manager not open at startup
comment:4 by , 20 years ago
I had to remove the -=27, it caused the queue pane to grow
when FZ was maximized, regardless if the site manager was
opened on startup or not. Do you see any negative behaiour
now that wasn't there before?
comment:5 by , 20 years ago
But in my environment (Windows XP english on ThinkPad X31,
1024x768).
Before this patch, when FZ was maximized:
- site manager opened on startup (or using the Edit
Setting), the queue pane will grow every time.
- site manage not opened on startup (also didn't open the
Edit Setting dialog), the queue pane will keep the size.
After this patch (also remove -=27), when FZ was maximized:
- site manager opened on startup, the queue pane will keep
the size.
- site manager not opened on startup, the queue pane will
shrink every time.
That's why I need -=27 for the site manager not open on startup.
I'll try to test it on other machine, also try to trace the
code to find the reason.
comment:6 by , 20 years ago
hm... for another machine of mine (windows 2000, 1024*768
also), yes, we don't need -=27 anymore, I'll try to find out
why this not work in my ThinkPad X31.
comment:7 by , 20 years ago
I don't know why cause this, but in my X31 laptop, the
splitter positon will change after calling HideRow(), I just
save the value before calling HideRow() and restore it after
HideRow().
--- source/MainFrm.cpp Mon Mar 21 16:53:07 2005
+++ source.patch/MainFrm.cpp Mon Mar 21 16:55:25 2005
@@ -967,7 +967,13 @@
Hide the queue if visible
m_wndVertSplitter.SetRedraw(FALSE);
if (m_bShowQueue)
+ {
+ int cy2, tmp;
+
+ m_wndVertSplitter.GetRowInfoEx(1,cy2,tmp);
m_wndVertSplitter.HideRow(2,1);
+ m_wndVertSplitter.SetRowInfo(1,cy2,0);
+ }
}
Now only the main splitter gets resized
CFrameWnd::OnSize(nType, cx, cy);
comment:8 by , 20 years ago
sorry, forget this patch, it still not work for release
version in my laptop.
comment:9 by , 20 years ago
Do you have XP Themes enabled? I have it disabled and Win2K
has no theme support either.
comment:10 by , 20 years ago
Ok. This one work for me now.
I don't know why the HideRow() and ShowRow() in OnSize()
will change the position of spiltter in my machine.
After apply this patch, it will restore the position after
ShowRow().
--- source/MainFrm.cpp Mon Mar 21 16:53:07 2005
+++ source.patch/MainFrm.cpp Mon Mar 21 18:09:14 2005
@@ -954,6 +954,8 @@
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
+ int cy2, tmp;
+
if (m_wndStatusBar.GetSafeHwnd())
{
if (nType!=SIZE_MAXIMIZED)
@@ -967,7 +969,10 @@
Hide the queue if visible
m_wndVertSplitter.SetRedraw(FALSE);
if (m_bShowQueue)
+ {
+ m_wndVertSplitter.GetRowInfoEx(1,cy2,tmp);
m_wndVertSplitter.HideRow(2,1);
+ }
}
Now only the main splitter gets resized
CFrameWnd::OnSize(nType, cx, cy);
@@ -975,7 +980,11 @@
{
Restore the queue
if (m_bShowQueue)
+ {
m_wndVertSplitter.ShowRow(2);
+ m_wndVertSplitter.SetRowInfo(1,cy2,0);
+ m_wndVertSplitter.RecalcLayout();
+ }
m_wndVertSplitter.SetRedraw(TRUE);
m_wndVertSplitter.RedrawWindow();
}
by , 20 years ago
Attachment: | filezilla_size_4.patch added |
---|
restore the splitter size after ShowRow?
comment:11 by , 20 years ago
XP theme enabled? I think yes, but I've tried the Windows XP
and Windows Classic theme, both them will shrink the queue
panel size if the site manager not opened on startup.
By the way, the final patch work for me.
comment:12 by , 20 years ago
Ok. I think I fix this problem now.
- We should call RestoreSize() after all process in
Create() to avoid the position change again (I still don't
know why it make different result in my X31).
- We should call OnSiteManager() after we call RestoreSize().
- Maybe we should call RecalcLayout() after we using
SetRowInfo() or SetColumnInfo().
This will fix the problem in my X31, for lost the queue
panel position .
And I also find another problem fixed in this patch.
If we using Minmize to Tray button, then restore it again.
The window will lost maximized status (because we call
ShowWindow(SW_SHOW) in OnTrayRestore(), we should use
ShowWindow(SW_SHOWMAXIMIZED) to restore the maximized status).
by , 20 years ago
Attachment: | filezilla_size_5.patch added |
---|
restore max. size attribute after tray, and call RestoreSize() after initilize before OnSiteManager()
splitter position not save correct