571 |
output_cursor.vpos, |
output_cursor.vpos, |
572 |
output_cursor.x, output_cursor.y); |
output_cursor.x, output_cursor.y); |
573 |
|
|
574 |
x_draw_vertical_border (w); |
if (draw_window_fringes (w, 1)) |
575 |
|
x_draw_vertical_border (w); |
|
draw_window_fringes (w); |
|
576 |
|
|
577 |
UNBLOCK_INPUT; |
UNBLOCK_INPUT; |
578 |
} |
} |
3382 |
Alt keysyms are on. */ |
Alt keysyms are on. */ |
3383 |
{ |
{ |
3384 |
int row, col; /* The row and column in the modifier table. */ |
int row, col; /* The row and column in the modifier table. */ |
3385 |
|
int found_alt_or_meta; |
3386 |
|
|
3387 |
for (row = 3; row < 8; row++) |
for (row = 3; row < 8; row++) |
3388 |
|
{ |
3389 |
|
found_alt_or_meta = 0; |
3390 |
for (col = 0; col < mods->max_keypermod; col++) |
for (col = 0; col < mods->max_keypermod; col++) |
3391 |
{ |
{ |
3392 |
KeyCode code |
KeyCode code = mods->modifiermap[(row * mods->max_keypermod) + col]; |
|
= mods->modifiermap[(row * mods->max_keypermod) + col]; |
|
3393 |
|
|
3394 |
/* Zeroes are used for filler. Skip them. */ |
/* Zeroes are used for filler. Skip them. */ |
3395 |
if (code == 0) |
if (code == 0) |
3407 |
{ |
{ |
3408 |
case XK_Meta_L: |
case XK_Meta_L: |
3409 |
case XK_Meta_R: |
case XK_Meta_R: |
3410 |
|
found_alt_or_meta = 1; |
3411 |
dpyinfo->meta_mod_mask |= (1 << row); |
dpyinfo->meta_mod_mask |= (1 << row); |
3412 |
break; |
break; |
3413 |
|
|
3414 |
case XK_Alt_L: |
case XK_Alt_L: |
3415 |
case XK_Alt_R: |
case XK_Alt_R: |
3416 |
|
found_alt_or_meta = 1; |
3417 |
dpyinfo->alt_mod_mask |= (1 << row); |
dpyinfo->alt_mod_mask |= (1 << row); |
3418 |
break; |
break; |
3419 |
|
|
3420 |
case XK_Hyper_L: |
case XK_Hyper_L: |
3421 |
case XK_Hyper_R: |
case XK_Hyper_R: |
3422 |
dpyinfo->hyper_mod_mask |= (1 << row); |
if (!found_alt_or_meta) |
3423 |
|
dpyinfo->hyper_mod_mask |= (1 << row); |
3424 |
|
code_col = syms_per_code; |
3425 |
|
col = mods->max_keypermod; |
3426 |
break; |
break; |
3427 |
|
|
3428 |
case XK_Super_L: |
case XK_Super_L: |
3429 |
case XK_Super_R: |
case XK_Super_R: |
3430 |
dpyinfo->super_mod_mask |= (1 << row); |
if (!found_alt_or_meta) |
3431 |
|
dpyinfo->super_mod_mask |= (1 << row); |
3432 |
|
code_col = syms_per_code; |
3433 |
|
col = mods->max_keypermod; |
3434 |
break; |
break; |
3435 |
|
|
3436 |
case XK_Shift_Lock: |
case XK_Shift_Lock: |
3437 |
/* Ignore this if it's not on the lock modifier. */ |
/* Ignore this if it's not on the lock modifier. */ |
3438 |
if ((1 << row) == LockMask) |
if (!found_alt_or_meta && ((1 << row) == LockMask)) |
3439 |
dpyinfo->shift_lock_mask = LockMask; |
dpyinfo->shift_lock_mask = LockMask; |
3440 |
|
code_col = syms_per_code; |
3441 |
|
col = mods->max_keypermod; |
3442 |
break; |
break; |
3443 |
} |
} |
3444 |
} |
} |
3445 |
} |
} |
3446 |
} |
} |
3447 |
|
} |
3448 |
} |
} |
3449 |
|
|
3450 |
/* If we couldn't find any meta keys, accept any alt keys as meta keys. */ |
/* If we couldn't find any meta keys, accept any alt keys as meta keys. */ |
5058 |
/* Compute the left edge of the scroll bar. */ |
/* Compute the left edge of the scroll bar. */ |
5059 |
#ifdef USE_TOOLKIT_SCROLL_BARS |
#ifdef USE_TOOLKIT_SCROLL_BARS |
5060 |
if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) |
if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) |
5061 |
sb_left = left + width - sb_width - (width - sb_width) / 2; |
sb_left = (left + |
5062 |
else |
(WINDOW_RIGHTMOST_P (w) |
5063 |
sb_left = left + (width - sb_width) / 2; |
? width - sb_width - (width - sb_width) / 2 |
5064 |
|
: 0)); |
5065 |
|
else |
5066 |
|
sb_left = (left + |
5067 |
|
(WINDOW_LEFTMOST_P (w) |
5068 |
|
? (width - sb_width) / 2 |
5069 |
|
: width - sb_width)); |
5070 |
#else |
#else |
5071 |
if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) |
if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) |
5072 |
sb_left = left + width - sb_width; |
sb_left = left + width - sb_width; |
5119 |
width); |
width); |
5120 |
#else /* not USE_GTK */ |
#else /* not USE_GTK */ |
5121 |
|
|
|
/* Since toolkit scroll bars are smaller than the space reserved |
|
|
for them on the frame, we have to clear "under" them. */ |
|
|
if (width > 0 && height > 0) |
|
|
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
|
|
left, top, width, height, False); |
|
5122 |
/* Move/size the scroll bar widget. */ |
/* Move/size the scroll bar widget. */ |
5123 |
if (mask) |
if (mask) |
5124 |
|
{ |
5125 |
|
/* Since toolkit scroll bars are smaller than the space reserved |
5126 |
|
for them on the frame, we have to clear "under" them. */ |
5127 |
|
if (width > 0 && height > 0) |
5128 |
|
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
5129 |
|
left, top, width, height, False); |
5130 |
XtConfigureWidget (SCROLL_BAR_X_WIDGET (FRAME_X_DISPLAY (f), bar), |
XtConfigureWidget (SCROLL_BAR_X_WIDGET (FRAME_X_DISPLAY (f), bar), |
5131 |
sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, |
sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, |
5132 |
top, |
top, |
5133 |
sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2, |
sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2, |
5134 |
max (height, 1), 0); |
max (height, 1), 0); |
5135 |
|
} |
5136 |
#endif /* not USE_GTK */ |
#endif /* not USE_GTK */ |
5137 |
#else /* not USE_TOOLKIT_SCROLL_BARS */ |
#else /* not USE_TOOLKIT_SCROLL_BARS */ |
5138 |
|
|
10758 |
x_update_window_end, |
x_update_window_end, |
10759 |
x_cursor_to, |
x_cursor_to, |
10760 |
x_flush, |
x_flush, |
10761 |
#ifndef XFlush |
#ifdef XFlush |
10762 |
x_flush, |
x_flush, |
10763 |
#else |
#else |
10764 |
0, /* flush_display_optional */ |
0, /* flush_display_optional */ |