To: vim_dev@googlegroups.com Subject: Patch 7.4.1538 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1538 Problem: Selection with the mouse does not work in command line mode. Solution: Use cairo functions. (Kazunobu Kuriyama) Files: src/gui_gtk_x11.c *** ../vim-7.4.1537/src/gui_gtk_x11.c 2016-03-08 22:47:05.618161053 +0100 --- src/gui_gtk_x11.c 2016-03-12 12:34:56.622932629 +0100 *************** *** 636,642 **** if (gui.row == gui.cursor_row) { gui.by_signal = TRUE; ! gui_update_cursor(TRUE, TRUE); gui.by_signal = FALSE; cairo_paint(cr); } --- 636,645 ---- if (gui.row == gui.cursor_row) { gui.by_signal = TRUE; ! if (State & CMDLINE) ! gui_update_cursor(TRUE, FALSE); ! else ! gui_update_cursor(TRUE, TRUE); gui.by_signal = FALSE; cairo_paint(cr); } *************** *** 6310,6317 **** gui_mch_invert_rectangle(int r, int c, int nr, int nc) { #if GTK_CHECK_VERSION(3,0,0) ! /* TODO Replace GdkGC with Cairo */ ! (void)r; (void)c; (void)nr; (void)nc; #else GdkGCValues values; GdkGC *invert_gc; --- 6313,6337 ---- gui_mch_invert_rectangle(int r, int c, int nr, int nc) { #if GTK_CHECK_VERSION(3,0,0) ! const GdkRectangle rect = { ! FILL_X(c), FILL_Y(r), nc * gui.char_width, nr * gui.char_height ! }; ! cairo_t * const cr = cairo_create(gui.surface); ! ! set_cairo_source_rgb_from_pixel(cr, gui.norm_pixel ^ gui.back_pixel); ! # if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1,9,2) ! cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE); ! # else ! /* Give an implementation for older cairo versions if necessary. */ ! # endif ! gdk_cairo_rectangle(cr, &rect); ! cairo_fill(cr); ! ! cairo_destroy(cr); ! ! if (!gui.by_signal) ! gtk_widget_queue_draw_area(gui.drawarea, rect.x, rect.y, ! rect.width, rect.height); #else GdkGCValues values; GdkGC *invert_gc; *** ../vim-7.4.1537/src/version.c 2016-03-11 22:52:00.742438030 +0100 --- src/version.c 2016-03-12 12:39:27.480137375 +0100 *************** *** 745,746 **** --- 745,748 ---- { /* Add new patch number below this line */ + /**/ + 1538, /**/ -- How To Keep A Healthy Level Of Insanity: 14. Put mosquito netting around your work area. Play a tape of jungle sounds all day. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///