… | |
… | |
1458 | break; |
1458 | break; |
1459 | } |
1459 | } |
1460 | break; |
1460 | break; |
1461 | |
1461 | |
1462 | case FocusIn: |
1462 | case FocusIn: |
|
|
1463 | if (ev.xfocus.detail != NotifyInferior && ev.xfocus.detail != NotifyPointer) |
1463 | focus_in (); |
1464 | focus_in (); |
1464 | break; |
1465 | break; |
1465 | |
1466 | |
1466 | case FocusOut: |
1467 | case FocusOut: |
|
|
1468 | if (ev.xfocus.detail != NotifyInferior && ev.xfocus.detail != NotifyPointer) |
1467 | focus_out (); |
1469 | focus_out (); |
1468 | break; |
1470 | break; |
1469 | |
1471 | |
1470 | case ConfigureNotify: |
1472 | case ConfigureNotify: |
1471 | if (ev.xconfigure.window == parent[0]) |
1473 | if (ev.xconfigure.window == parent[0]) |
1472 | { |
1474 | { |
… | |
… | |
1479 | resize_all_windows (ev.xconfigure.width, ev.xconfigure.height, 1); |
1481 | resize_all_windows (ev.xconfigure.width, ev.xconfigure.height, 1); |
1480 | } |
1482 | } |
1481 | |
1483 | |
1482 | HOOK_INVOKE ((this, HOOK_CONFIGURE_NOTIFY, DT_XEVENT, &ev, DT_END)); |
1484 | HOOK_INVOKE ((this, HOOK_CONFIGURE_NOTIFY, DT_XEVENT, &ev, DT_END)); |
1483 | |
1485 | |
1484 | #ifdef TRANSPARENT /* XXX: maybe not needed - leave in for now */ |
1486 | #ifdef TRANSPARENT |
1485 | if (OPTION (Opt_transparent)) |
1487 | if (OPTION (Opt_transparent)) |
1486 | check_our_parents (); |
1488 | check_our_parents (); |
1487 | #endif |
1489 | #endif |
1488 | } |
1490 | } |
1489 | break; |
1491 | break; |
… | |
… | |
2154 | selection_make (ev.time); |
2156 | selection_make (ev.time); |
2155 | break; |
2157 | break; |
2156 | |
2158 | |
2157 | case Button2: |
2159 | case Button2: |
2158 | if (IN_RANGE_EXC (ev.x, 0, width) && IN_RANGE_EXC (ev.y, 0, height)) // inside window? |
2160 | if (IN_RANGE_EXC (ev.x, 0, width) && IN_RANGE_EXC (ev.y, 0, height)) // inside window? |
2159 | selection_request (ev.time, ev.state & ModMetaMask ? Sel_Primary : Sel_Primary); |
2161 | selection_request (ev.time, ev.state & ModMetaMask ? Sel_Clipboard : Sel_Primary); |
2160 | break; |
2162 | break; |
2161 | |
2163 | |
2162 | #ifdef MOUSE_WHEEL |
2164 | #ifdef MOUSE_WHEEL |
2163 | case Button4: |
2165 | case Button4: |
2164 | case Button5: |
2166 | case Button5: |
… | |
… | |
3674 | seen_esc = true; |
3676 | seen_esc = true; |
3675 | continue; |
3677 | continue; |
3676 | } |
3678 | } |
3677 | else if (ch == C0_BEL || ch == CHAR_ST) |
3679 | else if (ch == C0_BEL || ch == CHAR_ST) |
3678 | break; |
3680 | break; |
|
|
3681 | else if (ch == C0_SYN) |
|
|
3682 | ch = cmd_get8 (); |
3679 | else if (ch < 0x20) |
3683 | else if (ch < 0x20) |
3680 | return NULL; /* other control character - exit */ |
3684 | return NULL; /* other control character - exit */ |
3681 | |
3685 | |
3682 | seen_esc = false; |
3686 | seen_esc = false; |
3683 | |
3687 | |
3684 | if (n >= STRING_MAX - 1) |
3688 | if (n >= STRING_MAX - 1) |
3685 | // stop at some sane length |
3689 | // stop at some sane length |
3686 | return NULL; |
3690 | return NULL; |
3687 | |
3691 | |
3688 | if (ch == C0_SYN) |
|
|
3689 | string[n++] = cmd_get8 (); |
|
|
3690 | else |
|
|
3691 | string[n++] = ch; |
3692 | string[n++] = ch; |
3692 | } |
3693 | } |
3693 | |
3694 | |
3694 | string[n++] = '\0'; |
3695 | string[n++] = '\0'; |
3695 | |
3696 | |
3696 | ends_how = (ch == 0x5c ? C0_ESC : ch); |
3697 | ends_how = (ch == 0x5c ? C0_ESC : ch); |