]> granicus.if.org Git - vim/commitdiff
updated for version 7.1-168 v7.1.168
authorBram Moolenaar <Bram@vim.org>
Mon, 3 Dec 2007 21:21:03 +0000 (21:21 +0000)
committerBram Moolenaar <Bram@vim.org>
Mon, 3 Dec 2007 21:21:03 +0000 (21:21 +0000)
src/gui_w48.c
src/version.c

index 42cf91fd6ed6551770e0bff9b8943317b947b468..b391a0dca991bcaead819d2fb288dba40e6add47 100644 (file)
@@ -290,6 +290,11 @@ static struct
 
 /* Local variables */
 static int             s_button_pending = -1;
+
+/* s_getting_focus is set when we got focus but didn't see mouse-up event yet,
+ * so don't reset s_button_pending. */
+static int             s_getting_focus = FALSE;
+
 static int             s_x_pending;
 static int             s_y_pending;
 static UINT            s_kFlags_pending;
@@ -671,6 +676,8 @@ _OnMouseEvent(
 {
     int vim_modifiers = 0x0;
 
+    s_getting_focus = FALSE;
+
     if (keyFlags & MK_SHIFT)
        vim_modifiers |= MOUSE_SHIFT;
     if (keyFlags & MK_CONTROL)
@@ -792,6 +799,7 @@ _OnMouseMoveOrRelease(
 {
     int button;
 
+    s_getting_focus = FALSE;
     if (s_button_pending > -1)
     {
        /* Delayed action for mouse down event */
@@ -1951,8 +1959,10 @@ gui_mch_wait_for_chars(int wtime)
            allow_scrollbar = FALSE;
 
            /* Clear pending mouse button, the release event may have been
-            * taken by the dialog window. */
-           s_button_pending = -1;
+            * taken by the dialog window.  But don't do this when getting
+            * focus, we need the mouse-up event then. */
+           if (!s_getting_focus)
+               s_button_pending = -1;
 
            return OK;
        }
@@ -2702,6 +2712,7 @@ _OnSetFocus(
     HWND hwndOldFocus)
 {
     gui_focus_change(TRUE);
+    s_getting_focus = TRUE;
     (void)MyWindowProc(hwnd, WM_SETFOCUS, (WPARAM)hwndOldFocus, 0);
 }
 
@@ -2711,6 +2722,7 @@ _OnKillFocus(
     HWND hwndNewFocus)
 {
     gui_focus_change(FALSE);
+    s_getting_focus = FALSE;
     (void)MyWindowProc(hwnd, WM_KILLFOCUS, (WPARAM)hwndNewFocus, 0);
 }
 
index 975b4bb6d09e49872c113338541218ab85b3625c..1ae453c32a48c7a3d1adb0659ece20a42204ee20 100644 (file)
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    168,
 /**/
     167,
 /**/