diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Eterm-mdk.spec | 4 | ||||
-rw-r--r-- | Eterm.spec | 4 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | src/command.c | 12 | ||||
-rw-r--r-- | src/pixmap.c | 8 | ||||
-rw-r--r-- | src/screen.c | 15 | ||||
-rw-r--r-- | src/term.c | 3 | ||||
-rw-r--r-- | src/windows.c | 3 |
9 files changed, 46 insertions, 15 deletions
@@ -4417,3 +4417,13 @@ Thu Oct 25 02:01:27 2001 Michael Jennings (mej) Argh. This configure.in/configure.ac thing is getting really old. ---------------------------------------------------------------------- +Mon Dec 3 20:16:39 2001 Michael Jennings (mej) + +Patches from Paul Brannan <pbranna@clemson.edu>, Klaus Elsbernd +<elsbernd@dfki.uni-kl.de>, and Derrick Moser +<d2moser@calum.csclub.uwaterloo.ca> which appeared while I was away. +Fixes for mouse wheel reporting and reset handling (Paul), Solaris +portability (Klaus), and XIM (Derrick). + +Getting ready to release 0.9.2 soonish. +---------------------------------------------------------------------- diff --git a/Eterm-mdk.spec b/Eterm-mdk.spec index aebf9bc..bbd05ae 100644 --- a/Eterm-mdk.spec +++ b/Eterm-mdk.spec @@ -1,7 +1,7 @@ Summary: Enlightened terminal emulator Name: Eterm -Version: 0.9.1 -Release: 2mdk +Version: 0.9.2 +Release: 1mdk Copyright: BSD Group: Terminals Source0: ftp://ftp.eterm.org/pub/Eterm/%{name}-%{ver}.tar.bz2 @@ -3,8 +3,8 @@ Summary: Enlightened terminal emulator Name: Eterm -Version: 0.9.1 -Release: 2 +Version: 0.9.2 +Release: 1 Copyright: BSD Group: User Interface/X %if %{bzip} diff --git a/configure.in b/configure.in index 0edae17..96f058e 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ dnl# $Id$ AC_INIT(src/feature.h) -AM_INIT_AUTOMAKE(Eterm, 0.9.1) +AM_INIT_AUTOMAKE(Eterm, 0.9.2) dnl# Set some basic variables DATE="`date '+%d %B %Y'`" diff --git a/src/command.c b/src/command.c index 9bf3d90..ddc4102 100644 --- a/src/command.c +++ b/src/command.c @@ -2020,12 +2020,20 @@ xim_real_init(void) void xim_set_status_position(void) { - XRectangle preedit_rect, status_rect, *needed_rect; + XRectangle preedit_rect, status_rect, *needed_rect, rect; XVaNestedList preedit_attr, status_attr; + XPoint spot; REQUIRE(xim_input_context != NULL); - if (xim_input_style & XIMPreeditArea) { + if (xim_input_style & XIMPreeditPosition) { + xim_set_size(&rect); + xim_get_position(&spot); + + preedit_attr = XVaCreateNestedList(0, XNArea, &rect, XNSpotLocation, &spot, NULL); + XSetICValues(xim_input_context, XNPreeditAttributes, preedit_attr, NULL); + XFree(preedit_attr); + } else if (xim_input_style & XIMPreeditArea) { /* Getting the necessary width of preedit area */ status_attr = XVaCreateNestedList(0, XNAreaNeeded, &needed_rect, NULL); XGetICValues(xim_input_context, XNStatusAttributes, status_attr, NULL); diff --git a/src/pixmap.c b/src/pixmap.c index e5f730e..38b5caf 100644 --- a/src/pixmap.c +++ b/src/pixmap.c @@ -1398,7 +1398,7 @@ shade_ximage_15(void *data, int bpl, int w, int h, int rm, int gm, int bm) unsigned char *ptr; int x, y; - ptr = data + (w * sizeof(DATA16)); + ptr = (unsigned char *)data + (w * sizeof(DATA16)); if ((rm <= 256) && (gm <= 256) && (bm <= 256)) { /* No saturation */ for (y = h; --y >= 0; ) { @@ -1441,7 +1441,7 @@ shade_ximage_16(void *data, int bpl, int w, int h, int rm, int gm, int bm) unsigned char *ptr; int x, y; - ptr = data + (w * sizeof(DATA16)); + ptr = (unsigned char *)data + (w * sizeof(DATA16)); if ((rm <= 256) && (gm <= 256) && (bm <= 256)) { /* No saturation */ for (y = h; --y >= 0; ) { @@ -1484,7 +1484,7 @@ shade_ximage_32(void *data, int bpl, int w, int h, int rm, int gm, int bm) unsigned char *ptr; int x, y; - ptr = data + (w * 4); + ptr = (unsigned char *)data + (w * 4); if ((rm <= 256) && (gm <= 256) && (bm <= 256)) { /* No saturation */ for (y = h; --y >= 0; ) { @@ -1547,7 +1547,7 @@ shade_ximage_24(void *data, int bpl, int w, int h, int rm, int gm, int bm) unsigned char *ptr; int x, y; - ptr = data + (w * 3); + ptr = (unsigned char *)data + (w * 3); if ((rm <= 256) && (gm <= 256) && (bm <= 256)) { /* No saturation */ for (y = h; --y >= 0; ) { diff --git a/src/screen.c b/src/screen.c index ffd22d7..cb98781 100644 --- a/src/screen.c +++ b/src/screen.c @@ -376,6 +376,7 @@ scr_poweron(void) screen.flags = Screen_DefaultFlags; scr_cursor(SAVE); + TermWin.nscrolled = 0; scr_reset(); scr_refresh(SLOW_REFRESH); } @@ -3275,7 +3276,19 @@ mouse_report(XButtonEvent * ev) { int button_number, key_state; - button_number = ((ev->button == AnyButton) ? 3 : (ev->button - Button1)); + switch(ev->button) { + case AnyButton: /* Button release */ + button_number = 3; + break; + case Button1: /* Button press */ + case Button2: + case Button3: + button_number = ev->button - Button1; + break; + default: /* Wheel mouse */ + button_number = 64 + ev->button - Button3 - 1; + break; + } key_state = ((ev->state & (ShiftMask | ControlMask)) + ((ev->state & Mod1Mask) ? 2 : 0)); tt_printf((unsigned char *) "\033[M%c%c%c", @@ -1332,9 +1332,6 @@ process_window_mode(unsigned int nargs, int args[]) BOUND(y, szHint.min_height, scr->height); BOUND(x, szHint.min_width, scr->width); XResizeWindow(Xdisplay, TermWin.parent, x, y); -#ifdef USE_XIM - xim_set_status_position(); -#endif break; case 5: XRaiseWindow(Xdisplay, TermWin.parent); diff --git a/src/windows.c b/src/windows.c index 25c5cdf..d32a916 100644 --- a/src/windows.c +++ b/src/windows.c @@ -572,6 +572,9 @@ term_resize(int width, int height) last_width = width; last_height = height; } +#ifdef USE_XIM + xim_set_status_position(); +#endif } /* Resize due to font change; update size hints and child windows */ |