To: [email protected]
Subject: patch 5.4o.6
Fcc: outbox
From: Bram Moolenaar <[email protected]>
------------

Patch 5.4o.6
Problem:    GTK version generated scrollbar events when setting a scrollbar to
           a specific position.  This can make scrolling happen at the wrong
           moment.  Example: When there is a horizontal scrollbar, 'nowrap'
           is set and using <BS> in Insert mode to join a line to the
           previous one.  (Dalecki)
Solution:   Don't pass on scrollbar events when setting the scrollbar
           ourselves.
Files:      src/gui_gtk.c


*** ../vim-5.4o/src/gui_gtk.c   Sun Jul 11 20:10:49 1999
--- src/gui_gtk.c       Tue Jul 13 17:37:24 1999
***************
*** 663,668 ****
--- 655,666 ----
  * Scrollbar stuff.
  */

+ #ifdef GTK_HAVE_FEATURES_1_1_0
+ /* This variable is set when we asked for a scrollbar change ourselves.  Don't
+  * pass scrollbar changes on to the GUI code then. */
+ static int did_ask_for_change = FALSE;
+ #endif
+
 void
 gui_mch_set_scrollbar_thumb(GuiScrollbar * sb, int val, int size, int max)
 {
***************
*** 675,681 ****
--- 673,681 ----
       adjustment->page_increment = (size > 2 ? size - 2 : 1);
       adjustment->step_increment = 1;
 #ifdef GTK_HAVE_FEATURES_1_1_0
+       did_ask_for_change = TRUE;
       gtk_adjustment_changed(adjustment);
+       did_ask_for_change = FALSE;
 #endif
     }
 }
***************
*** 697,702 ****
--- 697,707 ----
     GuiScrollbar *sb;
     long value;

+ #ifdef GTK_HAVE_FEATURES_1_1_0
+     if (did_ask_for_change)
+       return;
+ #endif
+
     sb = gui_find_scrollbar((long) data);
     value = adjustment->value;


--
hundred-and-one symptoms of being an internet addict:
82. AT&T names you Customer of the Month for the third consecutive time.

--/-/---- Bram Moolenaar ---- [email protected] ---- [email protected] ---\-\--
 \ \    www.vim.org/iccf      www.moolenaar.net       www.vim.org    / /