All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Make gitk save and restore the user set window position.
@ 2007-02-11 14:27 Mark Levedahl
  2007-02-11 14:27 ` Mark Levedahl
  2007-02-11 21:49 ` [PATCH] Make gitk save and restore the user set window position Junio C Hamano
  0 siblings, 2 replies; 8+ messages in thread
From: Mark Levedahl @ 2007-02-11 14:27 UTC (permalink / raw)
  To: git

I sent these patches to Junio and Paul last week, mistyped the git mailing list
address so they didn't get to the list so am resending for the record.

Mark Levedahl

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH] Make gitk save and restore the user set window position.
  2007-02-11 14:27 [PATCH] Make gitk save and restore the user set window position Mark Levedahl
@ 2007-02-11 14:27 ` Mark Levedahl
  2007-02-11 14:27   ` [PATCH] Clean up geometry save code in gitk Mark Levedahl
  2007-02-11 21:49 ` [PATCH] Make gitk save and restore the user set window position Junio C Hamano
  1 sibling, 1 reply; 8+ messages in thread
From: Mark Levedahl @ 2007-02-11 14:27 UTC (permalink / raw)
  To: git; +Cc: Mark Levedahl

gitk was saving widget sizes and positions when the main window was
destroyed, which is after all child widgets are destroyed. The cure
is to trap the WM_DELETE_WINDOW event before the gui is torn down. Also,
the saved geometry was captured using "winfo geometry .", rather than
"wm geometry ." Under Linux, these two return different answers and the
latter one is correct.

Signed-off-by: Mark Levedahl <mdl123@verizon.net>
---
 gitk |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/gitk b/gitk
index 1c36235..23bf567 100755
--- a/gitk
+++ b/gitk
@@ -725,7 +725,7 @@ proc makewindow {} {
     bind . <Control-KP_Add> {incrfont 1}
     bind . <Control-minus> {incrfont -1}
     bind . <Control-KP_Subtract> {incrfont -1}
-    bind . <Destroy> {savestuff %W}
+    wm protocol . WM_DELETE_WINDOW doquit
     bind . <Button-1> "click %W"
     bind $fstring <Key-Return> dofind
     bind $sha1entry <Key-Return> gotocommit
@@ -829,7 +829,7 @@ proc savestuff {w} {
 	puts $f [list set colors $colors]
 	puts $f [list set diffcolors $diffcolors]
 
-        puts $f "set geometry(main) [winfo geometry .]"
+	puts $f "set geometry(main) [wm geometry .]"
 	puts $f "set geometry(topwidth) [winfo width .tf]"
 	puts $f "set geometry(topheight) [winfo height .tf]"
 	puts $f "set geometry(canv) [expr {[winfo width $canv]-0}]"
@@ -5800,6 +5800,7 @@ proc showtag {tag isnew} {
 proc doquit {} {
     global stopped
     set stopped 100
+    savestuff .
     destroy .
 }
 
-- 
1.5.0.rc3.24.g0c5e

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH] Clean up geometry save code in gitk.
  2007-02-11 14:27 ` Mark Levedahl
@ 2007-02-11 14:27   ` Mark Levedahl
  2007-02-11 16:56     ` Sergey Vlasov
  0 siblings, 1 reply; 8+ messages in thread
From: Mark Levedahl @ 2007-02-11 14:27 UTC (permalink / raw)
  To: git; +Cc: Mark Levedahl

Leftover code was subtracting zero from several items before storing, an
obvious noop now deleted.

Signed-off-by: Mark Levedahl <mdl123@verizon.net>
---
 gitk |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gitk b/gitk
index 23bf567..df1ce8c 100755
--- a/gitk
+++ b/gitk
@@ -832,9 +832,9 @@ proc savestuff {w} {
 	puts $f "set geometry(main) [wm geometry .]"
 	puts $f "set geometry(topwidth) [winfo width .tf]"
 	puts $f "set geometry(topheight) [winfo height .tf]"
-	puts $f "set geometry(canv) [expr {[winfo width $canv]-0}]"
-	puts $f "set geometry(canv2) [expr {[winfo width $canv2]-0}]"
-	puts $f "set geometry(canv3) [expr {[winfo width $canv3]-0}]"
+	puts $f "set geometry(canv) [winfo width $canv]"
+	puts $f "set geometry(canv2) [winfo width $canv2]"
+	puts $f "set geometry(canv3) [winfo width $canv3]"
 	puts $f "set geometry(botwidth) [winfo width .bleft]"
 	puts $f "set geometry(botheight) [winfo height .bleft]"
 
-- 
1.5.0.rc3.24.g0c5e

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] Clean up geometry save code in gitk.
  2007-02-11 14:27   ` [PATCH] Clean up geometry save code in gitk Mark Levedahl
@ 2007-02-11 16:56     ` Sergey Vlasov
  2007-02-11 16:58       ` gitk: Fix restoring of pane sizes Sergey Vlasov
  2007-02-11 17:44       ` [PATCH] Clean up geometry save code in gitk Mark Levedahl
  0 siblings, 2 replies; 8+ messages in thread
From: Sergey Vlasov @ 2007-02-11 16:56 UTC (permalink / raw)
  To: Mark Levedahl; +Cc: git, Junio C Hamano, Paul Mackerras

[-- Attachment #1: Type: text/plain, Size: 1313 bytes --]

Hello!

On Sun, 11 Feb 2007 09:27:20 -0500
Mark Levedahl <mdl123@verizon.net> wrote:

> gitk was saving widget sizes and positions when the main window was
> destroyed, which is after all child widgets are destroyed. The cure
> is to trap the WM_DELETE_WINDOW event before the gui is torn down. Also,
> the saved geometry was captured using "winfo geometry .", rather than
> "wm geometry ." Under Linux, these two return different answers and the
> latter one is correct.

> Leftover code was subtracting zero from several items before storing, an
> obvious noop now deleted.

These two patches fix saving of the window position for me; however,
some things still remain broken:

 - No matter what sizes of the commit tree, patch and filelist panes I
   set, on gitk restart they come up with their default sizes.

 - Sizes of commit tree columns are not saved properly - on every gitk
   restart the dividers are shifting more and more to the right.

This is on Linux (x86_64) with Tk 8.4.13.

I made two more patches which fix the above problems for me - please
test them (in particular, someone needs to check that the Cygwin
support is not broken - apparently something is different between Tk
on Linux and Cygwin to create the problem with commit tree columns).

See the followup messages.

--
Sergey Vlasov

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* gitk: Fix restoring of pane sizes
  2007-02-11 16:56     ` Sergey Vlasov
@ 2007-02-11 16:58       ` Sergey Vlasov
  2007-02-11 16:58         ` gitk: Fix restoring of column widths in the commit tree Sergey Vlasov
  2007-02-11 17:44       ` [PATCH] Clean up geometry save code in gitk Mark Levedahl
  1 sibling, 1 reply; 8+ messages in thread
From: Sergey Vlasov @ 2007-02-11 16:58 UTC (permalink / raw)
  To: Mark Levedahl, Junio C Hamano, Paul Mackerras; +Cc: git, Sergey Vlasov

At least on Linux with Tk 8.4.13 gitk always came up with default pane
sizes, even though they were previously saved in ~/.gitk.  Apparently
setting width and height of frames in these panes when creating them
is not enough, and an explicit paneconfigure call is needed.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
---
 gitk |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/gitk b/gitk
index df1ce8c..7e6ee56 100755
--- a/gitk
+++ b/gitk
@@ -577,6 +577,7 @@ proc makewindow {} {
     pack .tf.bar -in .tf -side bottom -fill x
     pack .tf.histframe -fill both -side top -expand 1
     .ctop add .tf
+    .ctop paneconfigure .tf -height $geometry(topheight)
 
     # now build up the bottom
     panedwindow .pwbottom -orient horizontal
@@ -638,6 +639,7 @@ proc makewindow {} {
     $ctext tag conf found -back yellow
 
     .pwbottom add .bleft
+    .pwbottom paneconfigure .bleft -width $geometry(botwidth)
 
     # lower right
     frame .bright
-- 
1.5.0.rc4.50.g403de

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* gitk: Fix restoring of column widths in the commit tree
  2007-02-11 16:58       ` gitk: Fix restoring of pane sizes Sergey Vlasov
@ 2007-02-11 16:58         ` Sergey Vlasov
  0 siblings, 0 replies; 8+ messages in thread
From: Sergey Vlasov @ 2007-02-11 16:58 UTC (permalink / raw)
  To: Mark Levedahl, Junio C Hamano, Paul Mackerras; +Cc: git, Sergey Vlasov

On Linux with Tk 8.4.13 after each gitk restart the column dividers
were shifting more and more to the right.  Apparently the value from
[winfo width $canv] is larger than the value of the -width option
specified when creating the widget due to non-zero -highlightthickness
used by default.  But gitk never shows the focus highlight on canvases
used for the commit tree, so we can just set "-highlightthickness 0",
which fixes the width mismatch.

(The code before commit 3468e71f452701b3eff6a2aeb826bbe0cdad8270
subtracted 2 from widths of canvases when saving them - apparently to
account for that hidden highlightthickness; I suppose that Cygwin
behaves differently - hope that "-highlightthickness 0" will give
proper results everywhere.)

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
---
 gitk |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/gitk b/gitk
index 7e6ee56..ea3d68a 100755
--- a/gitk
+++ b/gitk
@@ -459,14 +459,17 @@ proc makewindow {} {
     set canv .tf.histframe.pwclist.canv
     canvas $canv -width $geometry(canv) \
 	-background $bgcolor -bd 0 \
+	-highlightthickness 0 \
 	-yscrollincr $linespc -yscrollcommand "scrollcanv $cscroll"
     .tf.histframe.pwclist add $canv
     set canv2 .tf.histframe.pwclist.canv2
     canvas $canv2 -width $geometry(canv2) \
+	-highlightthickness 0 \
 	-background $bgcolor -bd 0 -yscrollincr $linespc
     .tf.histframe.pwclist add $canv2
     set canv3 .tf.histframe.pwclist.canv3
     canvas $canv3 -width $geometry(canv3) \
+	-highlightthickness 0 \
 	-background $bgcolor -bd 0 -yscrollincr $linespc
     .tf.histframe.pwclist add $canv3
 
-- 
1.5.0.rc4.50.g403de

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] Clean up geometry save code in gitk.
  2007-02-11 16:56     ` Sergey Vlasov
  2007-02-11 16:58       ` gitk: Fix restoring of pane sizes Sergey Vlasov
@ 2007-02-11 17:44       ` Mark Levedahl
  1 sibling, 0 replies; 8+ messages in thread
From: Mark Levedahl @ 2007-02-11 17:44 UTC (permalink / raw)
  To: Sergey Vlasov; +Cc: git, Junio C Hamano, Paul Mackerras

Sergey Vlasov wrote:
> These two patches fix saving of the window position for me; however,
> some things still remain broken:
>
>  - No matter what sizes of the commit tree, patch and filelist panes I
>    set, on gitk restart they come up with their default sizes.
>
>  - Sizes of commit tree columns are not saved properly - on every gitk
>    restart the dividers are shifting more and more to the right.
>
> This is on Linux (x86_64) with Tk 8.4.13.
>
> I made two more patches which fix the above problems for me - please
> test them (in particular, someone needs to check that the Cygwin
> support is not broken - apparently something is different between Tk
> on Linux and Cygwin to create the problem with commit tree columns).
>
> See the followup messages.
>
> --
> Sergey Vlasov
>   

I could not actually apply your patches, but your suggested changes were 
simple enough to apply by hand:
1) I do notice the change in size of panes in the upper window on Cygwin 
(hadn't noticed before but it is there), and your "-highlightthickness 
0" tweak fixes that. Just for grins, I tried reenabling the "subtract 2" 
strategy in place before, and that only makes the problem worse on Cygwin.
2) I don't see any effect of the "pane configure" tweak on Cygwin. 
Haven't checked on Linux (don't have that here) so cannot comment.

Gotta say, the more I play with Tk, the more I wonder why anyone uses 
anything else  ;-) .

Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Make gitk save and restore the user set window position.
  2007-02-11 14:27 [PATCH] Make gitk save and restore the user set window position Mark Levedahl
  2007-02-11 14:27 ` Mark Levedahl
@ 2007-02-11 21:49 ` Junio C Hamano
  1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2007-02-11 21:49 UTC (permalink / raw)
  To: Mark Levedahl; +Cc: git

Mark Levedahl <mdl123@verizon.net> writes:

> I sent these patches to Junio and Paul last week, mistyped the git mailing list
> address so they didn't get to the list so am resending for the record.

Thanks.  Will apply them, short-circuitting Paul.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-02-11 21:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-11 14:27 [PATCH] Make gitk save and restore the user set window position Mark Levedahl
2007-02-11 14:27 ` Mark Levedahl
2007-02-11 14:27   ` [PATCH] Clean up geometry save code in gitk Mark Levedahl
2007-02-11 16:56     ` Sergey Vlasov
2007-02-11 16:58       ` gitk: Fix restoring of pane sizes Sergey Vlasov
2007-02-11 16:58         ` gitk: Fix restoring of column widths in the commit tree Sergey Vlasov
2007-02-11 17:44       ` [PATCH] Clean up geometry save code in gitk Mark Levedahl
2007-02-11 21:49 ` [PATCH] Make gitk save and restore the user set window position Junio C Hamano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.