]> git.pld-linux.org Git - packages/vim.git/blob - 6.2.134
- initial import
[packages/vim.git] / 6.2.134
1 To: vim-dev@vim.org
2 Subject: Patch 6.2.134 (extra)
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 6.2.134 (extra)
11 Problem:    Win32: When scrolling parts of the window are redrawn when this
12             isn't necessary.
13 Solution:   Only invalidate parts of the window when they are obscured by
14             other windows. (Michael Wookey)
15 Files:      src/gui_w48.c
16
17
18
19 *** ../vim-6.2.133/src/gui_w48.c        Sun Oct 26 20:11:34 2003
20 --- src/gui_w48.c       Sun Oct 26 20:56:48 2003
21 ***************
22 *** 2382,2387 ****
23 --- 2382,2409 ----
24   }
25   
26   /*
27 +  * Return flags used for scrolling.
28 +  * The SW_INVALIDATE is required when part of the window is covered or
29 +  * off-screen. Refer to MS KB Q75236.
30 +  */
31 +     static int
32 + get_scroll_flags(void)
33 + {
34 +     HWND      hwnd;
35 +     RECT      rcVim, rcOther, rcDest;
36
37 +     GetWindowRect(s_hwnd, &rcVim);
38 +     for (hwnd = s_hwnd; (hwnd = GetWindow(hwnd, GW_HWNDPREV)) != (HWND)0; )
39 +       if (IsWindowVisible(hwnd))
40 +       {
41 +           GetWindowRect(hwnd, &rcOther);
42 +           if (IntersectRect(&rcDest, &rcVim, &rcOther))
43 +               return SW_INVALIDATE;
44 +       }
45 +     return 0;
46 + }
47
48 + /*
49    * Delete the given number of lines from the given row, scrolling up any
50    * text further down within the scroll region.
51    */
52 ***************
53 *** 2396,2405 ****
54       rc.right = FILL_X(gui.scroll_region_right + 1);
55       rc.top = FILL_Y(row);
56       rc.bottom = FILL_Y(gui.scroll_region_bot + 1);
57 !     /* The SW_INVALIDATE is required when part of the window is covered or
58 !      * off-screen.  How do we avoid it when it's not needed? */
59       ScrollWindowEx(s_textArea, 0, -num_lines * gui.char_height,
60 !           &rc, &rc, NULL, NULL, SW_INVALIDATE);
61   
62       UpdateWindow(s_textArea);
63       /* This seems to be required to avoid the cursor disappearing when
64 --- 2418,2426 ----
65       rc.right = FILL_X(gui.scroll_region_right + 1);
66       rc.top = FILL_Y(row);
67       rc.bottom = FILL_Y(gui.scroll_region_bot + 1);
68
69       ScrollWindowEx(s_textArea, 0, -num_lines * gui.char_height,
70 !                                   &rc, &rc, NULL, NULL, get_scroll_flags());
71   
72       UpdateWindow(s_textArea);
73       /* This seems to be required to avoid the cursor disappearing when
74 ***************
75 *** 2431,2437 ****
76       /* The SW_INVALIDATE is required when part of the window is covered or
77        * off-screen.  How do we avoid it when it's not needed? */
78       ScrollWindowEx(s_textArea, 0, num_lines * gui.char_height,
79 !           &rc, &rc, NULL, NULL, SW_INVALIDATE);
80   
81       gui_undraw_cursor();      /* Is this really necessary? */
82       UpdateWindow(s_textArea);
83 --- 2452,2458 ----
84       /* The SW_INVALIDATE is required when part of the window is covered or
85        * off-screen.  How do we avoid it when it's not needed? */
86       ScrollWindowEx(s_textArea, 0, num_lines * gui.char_height,
87 !                                   &rc, &rc, NULL, NULL, get_scroll_flags());
88   
89       gui_undraw_cursor();      /* Is this really necessary? */
90       UpdateWindow(s_textArea);
91 *** ../vim-6.2.133/src/version.c        Sun Oct 26 20:19:23 2003
92 --- src/version.c       Sun Oct 26 20:59:01 2003
93 ***************
94 *** 639,640 ****
95 --- 639,642 ----
96   {   /* Add new patch number below this line */
97 + /**/
98 +     134,
99   /**/
100
101 -- 
102 ARTHUR:  You fight with the strength of many men, Sir knight.
103          I am Arthur, King of the Britons.  [pause]
104          I seek the finest and the bravest knights in the land to join me
105          in my Court of Camelot.  [pause]
106          You have proved yourself worthy; will you join me?  [pause]
107          You make me sad.  So be it.  Come, Patsy.
108 BLACK KNIGHT:  None shall pass.
109                                   The Quest for the Holy Grail (Monty Python)
110
111  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
112 ///          Creator of Vim - Vi IMproved -- http://www.Vim.org          \\\
113 \\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
114  \\\  Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html  ///
This page took 0.126796 seconds and 3 git commands to generate.