home *** CD-ROM | disk | FTP | other *** search
- To: vim-dev@vim.org
- Subject: Patch 6.1.011
- Fcc: outbox
- From: Bram Moolenaar <Bram@moolenaar.net>
- MIME-Version: 1.0
- Content-Type: text/plain; charset=ISO-8859-1
- Content-Transfer-Encoding: 8bit
- ------------
-
- Patch 6.1.011
- Problem: XIM: doesn't work correctly when 'number' is set. Also, a focus
- problem when selecting candidates.
- Solution: Fix the XIM problems. (Yasuhiro Matsumoto)
- Files: src/mbyte.c, src/screen.c
-
-
- *** ../vim61.010/src/mbyte.c Sat Mar 30 17:15:14 2002
- --- src/mbyte.c Fri Apr 5 21:26:15 2002
- ***************
- *** 3728,3734 ****
- {
- event_queue = key_press_event_queue;
- processing_queued_event = TRUE;
- ! while (event_queue != NULL)
- {
- GdkEvent *ev = event_queue->data;
-
- --- 3728,3734 ----
- {
- event_queue = key_press_event_queue;
- processing_queued_event = TRUE;
- ! while (event_queue != NULL && processing_queued_event)
- {
- GdkEvent *ev = event_queue->data;
-
- ***************
- *** 3790,3797 ****
- int
- xim_queue_key_press_event(GdkEvent *ev)
- {
- ! if (preedit_buf_len <= 0 || processing_queued_event)
- return FALSE;
-
- key_press_event_queue = g_slist_append(key_press_event_queue,
- gdk_event_copy(ev));
- --- 3790,3799 ----
- int
- xim_queue_key_press_event(GdkEvent *ev)
- {
- ! if (preedit_buf_len <= 0)
- return FALSE;
- + if (processing_queued_event)
- + processing_queued_event = FALSE;
-
- key_press_event_queue = g_slist_append(key_press_event_queue,
- gdk_event_copy(ev));
- *** ../vim61.010/src/screen.c Sat Mar 30 17:11:06 2002
- --- src/screen.c Mon Apr 8 19:50:11 2002
- ***************
- *** 2418,2423 ****
- --- 2418,2427 ----
- #endif
- #define WL_LINE WL_SBR + 1 /* text in the line */
- int draw_state = WL_START; /* what to draw next */
- + #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
- + int feedback_col = 0;
- + int feedback_old_attr = -1;
- + #endif
-
-
- if (startrow > endrow) /* past the end already! */
- ***************
- *** 3500,3539 ****
- && State == INSERT
- && im_get_status()
- && !p_imdisable
- ! && preedit_start_col != MAXCOL)
- {
- colnr_T tcol;
- - static int bcol = 0;
- - static int old_attr = -1;
-
- getvcol(curwin, &(curwin->w_cursor), &tcol, NULL, NULL);
- if ((long)preedit_start_col <= vcol && vcol < (long)tcol)
- {
- ! if (old_attr == -1)
- {
- ! bcol = 0;
- ! old_attr = char_attr;
- }
- if (draw_feedback != NULL)
- {
- ! if (draw_feedback[bcol] & XIMReverse)
- char_attr = HL_INVERSE;
- ! else if (draw_feedback[bcol] & XIMUnderline)
- char_attr = HL_UNDERLINE;
- else
- char_attr = hl_attr(HLF_V);
- }
- else
- ! char_attr = old_attr;
- ! bcol++;
- }
- else
- {
- ! if (old_attr >= 0)
- {
- ! char_attr = old_attr;
- ! old_attr = -1;
- ! bcol = 0;
- }
- }
- }
- --- 3505,3543 ----
- && State == INSERT
- && im_get_status()
- && !p_imdisable
- ! && preedit_start_col != MAXCOL
- ! && draw_state == WL_LINE)
- {
- colnr_T tcol;
-
- getvcol(curwin, &(curwin->w_cursor), &tcol, NULL, NULL);
- if ((long)preedit_start_col <= vcol && vcol < (long)tcol)
- {
- ! if (feedback_old_attr == -1)
- {
- ! feedback_col = 0;
- ! feedback_old_attr = char_attr;
- }
- if (draw_feedback != NULL)
- {
- ! if (draw_feedback[feedback_col] & XIMReverse)
- char_attr = HL_INVERSE;
- ! else if (draw_feedback[feedback_col] & XIMUnderline)
- char_attr = HL_UNDERLINE;
- else
- char_attr = hl_attr(HLF_V);
- }
- else
- ! char_attr = feedback_old_attr;
- ! feedback_col++;
- }
- else
- {
- ! if (feedback_old_attr >= 0)
- {
- ! char_attr = feedback_old_attr;
- ! feedback_old_attr = -1;
- ! feedback_col = 0;
- }
- }
- }
- *** ../vim61.010/src/version.c Mon Apr 8 22:11:31 2002
- --- src/version.c Mon Apr 8 22:13:14 2002
- ***************
- *** 608,609 ****
- --- 608,611 ----
- { /* Add new patch number below this line */
- + /**/
- + 11,
- /**/
-
- --
- hundred-and-one symptoms of being an internet addict:
- 94. Now admit it... How many of you have made "modem noises" into
- the phone just to see if it was possible? :-)
-
- /// Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net \\\
- /// Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim \\\
- \\\ Project leader for A-A-P -- http://www.a-a-p.org ///
- \\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org ///
-