Tue Feb 15 19:31:04 PST 2000 Michael Jennings <mej@eterm.org>
The buttonbar can now be toggled on and off both in the config file and via an escape sequence. The themes in CVS use Ctrl-Shift-Button3. You can also specify in the config file whether to dock the buttonbar at the top or the bottom of the Eterm window. You can't move it on the fly yet, but that will come. I also fixed resizing so that the term window didn't redraw itself unnecessarily. Hopefully I didn't break anything in the process. :-) Plus, I fixed poor handling of X-generated ConfigureNotify events, and the terminfo stuff is now done at install time instead of build time. SVN revision: 2077
This commit is contained in:
parent
16580dfd29
commit
af082c9a22
15
ChangeLog
15
ChangeLog
|
@ -3168,3 +3168,18 @@ Mon Feb 14 16:35:01 PST 2000 Michael Jennings <mej@eterm.org>
|
||||||
:-)
|
:-)
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
Tue Feb 15 19:31:04 PST 2000 Michael Jennings <mej@eterm.org>
|
||||||
|
|
||||||
|
The buttonbar can now be toggled on and off both in the config file
|
||||||
|
and via an escape sequence. The themes in CVS use Ctrl-Shift-Button3.
|
||||||
|
You can also specify in the config file whether to dock the buttonbar
|
||||||
|
at the top or the bottom of the Eterm window. You can't move it on
|
||||||
|
the fly yet, but that will come.
|
||||||
|
|
||||||
|
I also fixed resizing so that the term window didn't redraw itself
|
||||||
|
unnecessarily. Hopefully I didn't break anything in the process. :-)
|
||||||
|
|
||||||
|
Plus, I fixed poor handling of X-generated ConfigureNotify events, and
|
||||||
|
the terminfo stuff is now done at install time instead of build time.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
man_MANS = Eterm.1
|
man_MANS = Eterm.1
|
||||||
|
|
||||||
all: Makefile Eterm.1.html terminfo
|
all: Makefile Eterm.1.html
|
||||||
|
|
||||||
Eterm.1: $(top_srcdir)/doc/Eterm.1.in
|
Eterm.1: $(top_srcdir)/doc/Eterm.1.in
|
||||||
$(SED) -e 's%@''VERSION''@%$(VERSION)%g' -e 's%@''DATE''@%$(DATE)%g' -e 's%@THEMEDIR@%$(pkgdatadir)/themes%g' $(top_srcdir)/doc/$@.in > $@
|
$(SED) -e 's%@''VERSION''@%$(VERSION)%g' -e 's%@''DATE''@%$(DATE)%g' -e 's%@THEMEDIR@%$(pkgdatadir)/themes%g' $(top_srcdir)/doc/$@.in > $@
|
||||||
|
@ -10,8 +10,8 @@ Eterm.1: $(top_srcdir)/doc/Eterm.1.in
|
||||||
Eterm.1.html: Eterm.1
|
Eterm.1.html: Eterm.1
|
||||||
-nroff -man $< | man2html -title Eterm > $@
|
-nroff -man $< | man2html -title Eterm > $@
|
||||||
|
|
||||||
terminfo: Eterm.ti
|
install-data-hook:
|
||||||
-$(TIC) Eterm.ti
|
-$(TIC) Eterm.ti || (mkinstalldirs $(HOME)/.terminfo && $(TIC) -o$(HOME)/.terminfo Eterm.ti)
|
||||||
|
|
||||||
EXTRA_DIST = Eterm.1.in Eterm_reference.html Eterm.tcap Eterm.ti Makefile.am Makefile.in
|
EXTRA_DIST = Eterm.1.in Eterm_reference.html Eterm.tcap Eterm.ti Makefile.am Makefile.in
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,7 @@ bbar_create(void)
|
||||||
|
|
||||||
bbar->gc = XCreateGC(Xdisplay, bbar->win, GCForeground | GCFont, &gcvalue);
|
bbar->gc = XCreateGC(Xdisplay, bbar->win, GCForeground | GCFont, &gcvalue);
|
||||||
bbar_set_docked(bbar, BBAR_DOCKED_TOP);
|
bbar_set_docked(bbar, BBAR_DOCKED_TOP);
|
||||||
|
bbar_set_visible(bbar, 1);
|
||||||
|
|
||||||
return bbar;
|
return bbar;
|
||||||
}
|
}
|
||||||
|
@ -113,9 +114,13 @@ bbar_init(buttonbar_t *bbar, int width)
|
||||||
{
|
{
|
||||||
event_register_dispatcher(bbar_dispatch_event, bbar_event_init_dispatcher);
|
event_register_dispatcher(bbar_dispatch_event, bbar_event_init_dispatcher);
|
||||||
XSetForeground(Xdisplay, bbar->gc, images[image_bbar].norm->fg);
|
XSetForeground(Xdisplay, bbar->gc, images[image_bbar].norm->fg);
|
||||||
bbar_resize(bbar, width);
|
bbar_dock(bbar, bbar_is_docked(bbar));
|
||||||
|
if (bbar_is_visible(bbar)) {
|
||||||
|
bbar_set_visible(bbar, 0);
|
||||||
|
bbar_show(bbar, 1);
|
||||||
|
}
|
||||||
|
bbar_resize(bbar, -width);
|
||||||
bbar_reset_total_height();
|
bbar_reset_total_height();
|
||||||
bbar_calc_total_height();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -263,7 +268,6 @@ bbar_add(buttonbar_t *bbar)
|
||||||
}
|
}
|
||||||
bbar->next = NULL;
|
bbar->next = NULL;
|
||||||
bbar_reset_total_height();
|
bbar_reset_total_height();
|
||||||
bbar_calc_total_height();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short
|
unsigned short
|
||||||
|
@ -651,27 +655,44 @@ bbar_show(buttonbar_t *bbar, unsigned char visible)
|
||||||
D_BBAR(("bbar_show(%8p, %d) called.\n", bbar, visible));
|
D_BBAR(("bbar_show(%8p, %d) called.\n", bbar, visible));
|
||||||
if (visible && !bbar_is_visible(bbar)) {
|
if (visible && !bbar_is_visible(bbar)) {
|
||||||
D_BBAR((" -> Making bbar visible.\n"));
|
D_BBAR((" -> Making bbar visible.\n"));
|
||||||
XMapWindow(Xdisplay, bbar->win);
|
|
||||||
bbar_set_visible(bbar, 1);
|
bbar_set_visible(bbar, 1);
|
||||||
|
XMapWindow(Xdisplay, bbar->win);
|
||||||
|
bbar_draw(bbar, IMAGE_STATE_CURRENT, MODE_MASK);
|
||||||
changed = 1;
|
changed = 1;
|
||||||
} else if (!visible && bbar_is_visible(bbar)) {
|
} else if (!visible && bbar_is_visible(bbar)) {
|
||||||
D_BBAR((" -> Making bbar invisible.\n"));
|
D_BBAR((" -> Making bbar invisible.\n"));
|
||||||
XUnmapWindow(Xdisplay, bbar->win);
|
|
||||||
bbar_set_visible(bbar, 0);
|
bbar_set_visible(bbar, 0);
|
||||||
|
XUnmapWindow(Xdisplay, bbar->win);
|
||||||
changed = 1;
|
changed = 1;
|
||||||
}
|
}
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
bbar_show_all(char visible)
|
||||||
|
{
|
||||||
|
buttonbar_t *bbar;
|
||||||
|
|
||||||
|
for (bbar = buttonbar; bbar; bbar = bbar->next) {
|
||||||
|
bbar_show(bbar, ((visible == -1) ? (!bbar_is_visible(bbar)) : visible));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
bbar_resize(buttonbar_t *bbar, int w)
|
bbar_resize(buttonbar_t *bbar, int w)
|
||||||
{
|
{
|
||||||
D_BBAR(("bbar_resize(%8p, %d) called.\n", bbar, w));
|
D_BBAR(("bbar_resize(%8p, %d) called.\n", bbar, w));
|
||||||
if (w == -1) {
|
if ((w >= 0) && !bbar_is_visible(bbar)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bbar_redock(bbar);
|
||||||
|
if (w < 0) {
|
||||||
bbar_calc_sizes(bbar);
|
bbar_calc_sizes(bbar);
|
||||||
bbar_calc_height(bbar);
|
bbar_calc_height(bbar);
|
||||||
bbar_reset_total_height();
|
bbar_reset_total_height();
|
||||||
} else if (bbar->w != w) {
|
w = -w;
|
||||||
|
}
|
||||||
|
if (bbar->w != w) {
|
||||||
bbar->w = w;
|
bbar->w = w;
|
||||||
bbar_calc_positions(bbar);
|
bbar_calc_positions(bbar);
|
||||||
D_BBAR(("Resizing window 0x%08x to %dx%d\n", bbar->win, bbar->w, bbar->h));
|
D_BBAR(("Resizing window 0x%08x to %dx%d\n", bbar->win, bbar->w, bbar->h));
|
||||||
|
@ -688,7 +709,6 @@ bbar_resize_all(int width)
|
||||||
for (bbar = buttonbar; bbar; bbar = bbar->next) {
|
for (bbar = buttonbar; bbar; bbar = bbar->next) {
|
||||||
bbar_resize(bbar, width);
|
bbar_resize(bbar, width);
|
||||||
}
|
}
|
||||||
bbar_calc_total_height();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -716,6 +736,8 @@ bbar_draw(buttonbar_t *bbar, unsigned char image_state, unsigned char force_mode
|
||||||
}
|
}
|
||||||
if (image_mode_is(image_bbar, MODE_MASK) && !((images[image_bbar].mode & MODE_MASK) & (force_modes))) {
|
if (image_mode_is(image_bbar, MODE_MASK) && !((images[image_bbar].mode & MODE_MASK) & (force_modes))) {
|
||||||
return;
|
return;
|
||||||
|
} else if (!bbar_is_visible(bbar)) {
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
render_simage(images[image_bbar].current, bbar->win, bbar->w, bbar->h, image_bbar, RENDER_FORCE_PIXMAP);
|
render_simage(images[image_bbar].current, bbar->win, bbar->w, bbar->h, image_bbar, RENDER_FORCE_PIXMAP);
|
||||||
bbar->bg = images[image_bbar].current->pmap->pixmap;
|
bbar->bg = images[image_bbar].current->pmap->pixmap;
|
||||||
|
@ -756,26 +778,53 @@ void
|
||||||
bbar_dock(buttonbar_t *bbar, unsigned char dock)
|
bbar_dock(buttonbar_t *bbar, unsigned char dock)
|
||||||
{
|
{
|
||||||
D_BBAR(("bbar_dock(%8p, %d) called.\n", bbar, dock));
|
D_BBAR(("bbar_dock(%8p, %d) called.\n", bbar, dock));
|
||||||
bbar_set_docked(bbar, dock);
|
|
||||||
if (dock == BBAR_DOCKED_TOP) {
|
if (dock == BBAR_DOCKED_TOP) {
|
||||||
|
bbar_set_docked(bbar, BBAR_DOCKED_TOP);
|
||||||
bbar->x = 0;
|
bbar->x = 0;
|
||||||
bbar->y = 0;
|
bbar->y = 0;
|
||||||
XReparentWindow(Xdisplay, bbar->win, TermWin.parent, bbar->x, bbar->y);
|
XReparentWindow(Xdisplay, bbar->win, TermWin.parent, bbar->x, bbar->y);
|
||||||
XMoveResizeWindow(Xdisplay, bbar->win, bbar->x, bbar->y, bbar->w, bbar->h);
|
XMoveResizeWindow(Xdisplay, bbar->win, bbar->x, bbar->y, bbar->w, bbar->h);
|
||||||
|
} else if (dock == BBAR_DOCKED_BOTTOM) {
|
||||||
|
bbar_set_docked(bbar, BBAR_DOCKED_BOTTOM);
|
||||||
|
bbar->x = 0;
|
||||||
|
bbar->y = szHint.height - bbar->h + 1;
|
||||||
|
XReparentWindow(Xdisplay, bbar->win, TermWin.parent, bbar->x, bbar->y);
|
||||||
|
XMoveResizeWindow(Xdisplay, bbar->win, bbar->x, bbar->y, bbar->w, bbar->h);
|
||||||
|
} else {
|
||||||
|
bbar_set_docked(bbar, 0);
|
||||||
|
bbar->x = 0;
|
||||||
|
bbar->y = 0;
|
||||||
|
XReparentWindow(Xdisplay, bbar->win, Xroot, bbar->x, bbar->y);
|
||||||
|
XMoveResizeWindow(Xdisplay, bbar->win, bbar->x, bbar->y, bbar->w, bbar->h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long
|
unsigned long
|
||||||
bbar_calc_total_height(void)
|
bbar_calc_total_height(void)
|
||||||
{
|
{
|
||||||
buttonbar_t *bbar;
|
register buttonbar_t *bbar;
|
||||||
|
|
||||||
bbar_total_h = 0;
|
bbar_total_h = 0;
|
||||||
for (bbar = buttonbar; bbar; bbar = bbar->next) {
|
for (bbar = buttonbar; bbar; bbar = bbar->next) {
|
||||||
if (bbar_is_docked(bbar)) {
|
if (bbar_is_visible(bbar)) {
|
||||||
bbar_total_h += bbar->h;
|
bbar_total_h += bbar->h;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
D_BBAR(("Returning %d\n", bbar_total_h));
|
D_BBAR(("Returning %d\n", bbar_total_h));
|
||||||
return bbar_total_h;
|
return bbar_total_h;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned long
|
||||||
|
bbar_calc_docked_height(register unsigned char dock_flag)
|
||||||
|
{
|
||||||
|
register buttonbar_t *bbar;
|
||||||
|
register unsigned long h = 0;
|
||||||
|
|
||||||
|
for (bbar = buttonbar; bbar; bbar = bbar->next) {
|
||||||
|
if ((bbar->state & dock_flag) && bbar_is_visible(bbar)) {
|
||||||
|
h += bbar->h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
D_BBAR(("Returning %d\n", h));
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
|
@ -33,10 +33,14 @@
|
||||||
#define BBAR_DOCKED_TOP (1 << 0)
|
#define BBAR_DOCKED_TOP (1 << 0)
|
||||||
#define BBAR_DOCKED_BOTTOM (1 << 1)
|
#define BBAR_DOCKED_BOTTOM (1 << 1)
|
||||||
#define BBAR_DOCKED (BBAR_DOCKED_TOP | BBAR_DOCKED_BOTTOM)
|
#define BBAR_DOCKED (BBAR_DOCKED_TOP | BBAR_DOCKED_BOTTOM)
|
||||||
|
#define BBAR_UNDOCKED (~BBAR_DOCKED)
|
||||||
#define BBAR_VISIBLE (1 << 2)
|
#define BBAR_VISIBLE (1 << 2)
|
||||||
|
|
||||||
#define bbar_is_docked(bbar) (bbar->state & BBAR_DOCKED)
|
#define bbar_is_docked(bbar) (bbar->state & BBAR_DOCKED)
|
||||||
|
#define bbar_is_top_docked(bbar) (bbar->state & BBAR_DOCKED_TOP)
|
||||||
|
#define bbar_is_bottom_docked(bbar) (bbar->state & BBAR_DOCKED_BOTTOM)
|
||||||
#define bbar_set_docked(bbar, d) do {bbar->state &= ~BBAR_DOCKED; bbar->state |= (d);} while (0)
|
#define bbar_set_docked(bbar, d) do {bbar->state &= ~BBAR_DOCKED; bbar->state |= (d);} while (0)
|
||||||
|
#define bbar_redock(bbar) bbar_dock(bbar, bbar_is_docked(bbar));
|
||||||
#define bbar_is_visible(bbar) (bbar->state & BBAR_VISIBLE)
|
#define bbar_is_visible(bbar) (bbar->state & BBAR_VISIBLE)
|
||||||
#define bbar_set_visible(bbar, v) ((v) ? (bbar->state |= BBAR_VISIBLE) : (bbar->state &= ~BBAR_VISIBLE))
|
#define bbar_set_visible(bbar, v) ((v) ? (bbar->state |= BBAR_VISIBLE) : (bbar->state &= ~BBAR_VISIBLE))
|
||||||
#define bbar_get_width(bbar) (bbar->w)
|
#define bbar_get_width(bbar) (bbar->w)
|
||||||
|
@ -117,12 +121,14 @@ extern void bbar_deselect_button(buttonbar_t *bbar, button_t *button);
|
||||||
extern void bbar_click_button(buttonbar_t *bbar, button_t *button);
|
extern void bbar_click_button(buttonbar_t *bbar, button_t *button);
|
||||||
extern void button_check_action(buttonbar_t *bbar, button_t *button, unsigned char press, Time t);
|
extern void button_check_action(buttonbar_t *bbar, button_t *button, unsigned char press, Time t);
|
||||||
extern unsigned char bbar_show(buttonbar_t *bbar, unsigned char visible);
|
extern unsigned char bbar_show(buttonbar_t *bbar, unsigned char visible);
|
||||||
|
extern void bbar_show_all(char visible);
|
||||||
extern void bbar_resize(buttonbar_t *bbar, int w);
|
extern void bbar_resize(buttonbar_t *bbar, int w);
|
||||||
extern void bbar_resize_all(int width);
|
extern void bbar_resize_all(int width);
|
||||||
extern void bbar_dock(buttonbar_t *bbar, unsigned char dock);
|
extern void bbar_dock(buttonbar_t *bbar, unsigned char dock);
|
||||||
extern void bbar_draw(buttonbar_t *bbar, unsigned char image_state, unsigned char force_modes);
|
extern void bbar_draw(buttonbar_t *bbar, unsigned char image_state, unsigned char force_modes);
|
||||||
extern void bbar_draw_all(unsigned char image_state, unsigned char force_modes);
|
extern void bbar_draw_all(unsigned char image_state, unsigned char force_modes);
|
||||||
extern unsigned long bbar_calc_total_height(void);
|
extern unsigned long bbar_calc_total_height(void);
|
||||||
|
extern unsigned long bbar_calc_docked_height(unsigned char);
|
||||||
|
|
||||||
_XFUNCPROTOEND
|
_XFUNCPROTOEND
|
||||||
|
|
||||||
|
|
10
src/events.c
10
src/events.c
|
@ -489,8 +489,8 @@ handle_configure_notify(event_t * ev)
|
||||||
int x = ev->xconfigurerequest.x, y = ev->xconfigurerequest.y;
|
int x = ev->xconfigurerequest.x, y = ev->xconfigurerequest.y;
|
||||||
unsigned int width = ev->xconfigurerequest.width, height = ev->xconfigurerequest.height;
|
unsigned int width = ev->xconfigurerequest.width, height = ev->xconfigurerequest.height;
|
||||||
|
|
||||||
D_EVENTS((" -> TermWin.parent is %ldx%ld at (%d, %d). Internal cache data shows %dx%d at (%hd, %hd)\n",
|
D_EVENTS((" -> TermWin.parent is %ldx%ld at (%d, %d). Internal cache data shows %dx%d at (%hd, %hd). send_event is %d\n",
|
||||||
width, height, x, y, szHint.width, szHint.height, TermWin.x, TermWin.y));
|
width, height, x, y, szHint.width, szHint.height, TermWin.x, TermWin.y, ev->xconfigure.send_event));
|
||||||
/* If the font change count is non-zero, this event is telling us we resized ourselves. */
|
/* If the font change count is non-zero, this event is telling us we resized ourselves. */
|
||||||
if (font_chg > 0) {
|
if (font_chg > 0) {
|
||||||
font_chg--;
|
font_chg--;
|
||||||
|
@ -503,8 +503,10 @@ handle_configure_notify(event_t * ev)
|
||||||
xim_set_status_position();
|
xim_set_status_position();
|
||||||
#endif
|
#endif
|
||||||
/* A resize requires the additional handling of a move */
|
/* A resize requires the additional handling of a move */
|
||||||
handle_move(x, y);
|
if (ev->xconfigure.send_event) {
|
||||||
} else if ((x != TermWin.x) || (y != TermWin.y)) {
|
handle_move(x, y);
|
||||||
|
}
|
||||||
|
} else if (((x != TermWin.x) || (y != TermWin.y)) && (ev->xconfigure.send_event)) {
|
||||||
/* There was an external move, but no resize. Handle the move. */
|
/* There was an external move, but no resize. Handle the move. */
|
||||||
D_EVENTS((" -> External move detected.\n"));
|
D_EVENTS((" -> External move detected.\n"));
|
||||||
handle_move(x, y);
|
handle_move(x, y);
|
||||||
|
|
|
@ -2892,6 +2892,32 @@ parse_bbar(char *buff, void *state)
|
||||||
bbar_set_font(bbar, font);
|
bbar_set_font(bbar, font);
|
||||||
FREE(font);
|
FREE(font);
|
||||||
|
|
||||||
|
} else if (!BEG_STRCASECMP(buff, "dock ")) {
|
||||||
|
char *where = PWord(2, buff);
|
||||||
|
|
||||||
|
if (!where) {
|
||||||
|
print_error("Parse error in file %s, line %lu: Attribute dock requires a parameter", file_peek_path(), file_peek_line());
|
||||||
|
} else if (!BEG_STRCASECMP(where, "top")) {
|
||||||
|
bbar_set_docked(bbar, BBAR_DOCKED_TOP);
|
||||||
|
} else if (!BEG_STRCASECMP(where, "bot")) { /* "bot" or "bottom" */
|
||||||
|
bbar_set_docked(bbar, BBAR_DOCKED_BOTTOM);
|
||||||
|
} else if (!BEG_STRCASECMP(where, "no")) { /* "no" or "none" */
|
||||||
|
bbar_set_docked(bbar, BBAR_UNDOCKED);
|
||||||
|
} else {
|
||||||
|
print_error("Parse error in file %s, line %lu: Invalid parameter \"%s\" to attribute dock", file_peek_path(), file_peek_line(), where);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (!BEG_STRCASECMP(buff, "visible ")) {
|
||||||
|
char *tmp = PWord(2, buff);
|
||||||
|
|
||||||
|
if (BOOL_OPT_ISTRUE(tmp)) {
|
||||||
|
bbar_set_visible(bbar, 1);
|
||||||
|
} else if (BOOL_OPT_ISFALSE(tmp)) {
|
||||||
|
bbar_set_visible(bbar, 0);
|
||||||
|
} else {
|
||||||
|
print_error("Parse error in file %s, line %lu: Invalid boolean value \"%s\" in context button_bar", file_peek_path(), file_peek_line(), tmp);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (!BEG_STRCASECMP(buff, "button ") || !BEG_STRCASECMP(buff, "rbutton ")) {
|
} else if (!BEG_STRCASECMP(buff, "button ") || !BEG_STRCASECMP(buff, "rbutton ")) {
|
||||||
char *text = PWord(2, buff);
|
char *text = PWord(2, buff);
|
||||||
char *icon = StrCaseStr(buff, "icon ");
|
char *icon = StrCaseStr(buff, "icon ");
|
||||||
|
|
|
@ -149,7 +149,7 @@ void
|
||||||
scr_reset(void)
|
scr_reset(void)
|
||||||
{
|
{
|
||||||
/* int i, j, k, total_rows, prev_total_rows; */
|
/* int i, j, k, total_rows, prev_total_rows; */
|
||||||
int total_rows, prev_total_rows;
|
int total_rows, prev_total_rows, chscr = 0;
|
||||||
register int i, j, k;
|
register int i, j, k;
|
||||||
text_t tc;
|
text_t tc;
|
||||||
|
|
||||||
|
@ -161,6 +161,9 @@ scr_reset(void)
|
||||||
if (TermWin.ncol == prev_ncol && TermWin.nrow == prev_nrow)
|
if (TermWin.ncol == prev_ncol && TermWin.nrow == prev_nrow)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (current_screen != PRIMARY) {
|
||||||
|
chscr = scr_change_screen(PRIMARY);
|
||||||
|
}
|
||||||
if (TermWin.ncol <= 0)
|
if (TermWin.ncol <= 0)
|
||||||
TermWin.ncol = 80;
|
TermWin.ncol = 80;
|
||||||
if (TermWin.nrow <= 0)
|
if (TermWin.nrow <= 0)
|
||||||
|
@ -316,6 +319,10 @@ scr_reset(void)
|
||||||
prev_ncol = TermWin.ncol;
|
prev_ncol = TermWin.ncol;
|
||||||
|
|
||||||
tt_resize();
|
tt_resize();
|
||||||
|
|
||||||
|
if (chscr) {
|
||||||
|
scr_change_screen(chscr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
|
@ -667,8 +667,9 @@ scrollbar_init(int width, int height)
|
||||||
scrollbar.anchor_bottom = scrollbar.scrollarea_end;
|
scrollbar.anchor_bottom = scrollbar.scrollarea_end;
|
||||||
|
|
||||||
/* Create the scrollbar trough window. It will be the parent to the other windows. */
|
/* Create the scrollbar trough window. It will be the parent to the other windows. */
|
||||||
scrollbar.win = XCreateWindow(Xdisplay, TermWin.parent, ((Options & Opt_scrollbar_right) ? (width - scrollbar_trough_width()) : (0)), bbar_total_height(), scrollbar_trough_width(), height,
|
scrollbar.win = XCreateWindow(Xdisplay, TermWin.parent, ((Options & Opt_scrollbar_right) ? (width - scrollbar_trough_width()) : (0)), bbar_calc_docked_height(BBAR_DOCKED_TOP),
|
||||||
0, Xdepth, InputOutput, CopyFromParent, CWOverrideRedirect | CWBackingStore | CWBackPixel | CWBorderPixel | CWColormap, &Attributes);
|
scrollbar_trough_width(), height, 0, Xdepth, InputOutput, CopyFromParent,
|
||||||
|
CWOverrideRedirect | CWBackingStore | CWBackPixel | CWBorderPixel | CWColormap, &Attributes);
|
||||||
XDefineCursor(Xdisplay, scrollbar.win, cursor);
|
XDefineCursor(Xdisplay, scrollbar.win, cursor);
|
||||||
XSelectInput(Xdisplay, scrollbar.win, mask);
|
XSelectInput(Xdisplay, scrollbar.win, mask);
|
||||||
D_SCROLLBAR(("Created scrollbar window 0x%08x\n", scrollbar.win));
|
D_SCROLLBAR(("Created scrollbar window 0x%08x\n", scrollbar.win));
|
||||||
|
@ -775,9 +776,10 @@ scrollbar_resize(int width, int height)
|
||||||
|
|
||||||
D_SCROLLBAR(("scrollbar_resize(%d, %d)\n", width, height));
|
D_SCROLLBAR(("scrollbar_resize(%d, %d)\n", width, height));
|
||||||
scrollbar_calc_size(width, height);
|
scrollbar_calc_size(width, height);
|
||||||
D_SCROLLBAR((" -> XMoveResizeWindow(Xdisplay, 0x%08x, %d, %d, %d, %d)\n", scrollbar.win, ((Options & Opt_scrollbar_right) ? (width - scrollbar_trough_width()) : (0)),
|
D_SCROLLBAR((" -> XMoveResizeWindow(Xdisplay, 0x%08x, %d, y, %d, %d)\n", scrollbar.win, ((Options & Opt_scrollbar_right) ? (width - scrollbar_trough_width()) : (0)),
|
||||||
bbar_total_height(), scrollbar_trough_width(), height));
|
scrollbar_trough_width(), scrollbar.win_height));
|
||||||
XMoveResizeWindow(Xdisplay, scrollbar.win, ((Options & Opt_scrollbar_right) ? (width - scrollbar_trough_width()) : (0)), bbar_total_height(), scrollbar_trough_width(), height);
|
XMoveResizeWindow(Xdisplay, scrollbar.win, ((Options & Opt_scrollbar_right) ? (width - scrollbar_trough_width()) : (0)), bbar_calc_docked_height(BBAR_DOCKED_TOP),
|
||||||
|
scrollbar_trough_width(), scrollbar.win_height);
|
||||||
scrollbar_draw_trough(IMAGE_STATE_CURRENT, MODE_MASK);
|
scrollbar_draw_trough(IMAGE_STATE_CURRENT, MODE_MASK);
|
||||||
scrollbar_reposition_and_draw(MODE_MASK);
|
scrollbar_reposition_and_draw(MODE_MASK);
|
||||||
scrollbar.init = 0;
|
scrollbar.init = 0;
|
||||||
|
|
|
@ -83,7 +83,11 @@
|
||||||
#define scrollbar_dn_loc() (scrollbar.down_arrow_loc)
|
#define scrollbar_dn_loc() (scrollbar.down_arrow_loc)
|
||||||
|
|
||||||
/* Scrollbar operations */
|
/* Scrollbar operations */
|
||||||
#define map_scrollbar(show) do {PrivMode(show, PrivMode_scrollbar); if (scrollbar_mapping(show)) {scr_touch(); parent_resize();} } while (0)
|
#if 0
|
||||||
|
#define map_scrollbar(show) do {PrivMode(show, PrivMode_scrollbar); if (scrollbar_mapping(show)) {scr_touch(); parent_resize();}} while (0)
|
||||||
|
#else
|
||||||
|
#define map_scrollbar(show) do {PrivMode(show, PrivMode_scrollbar); if (scrollbar_mapping(show)) {parent_resize();}} while (0)
|
||||||
|
#endif
|
||||||
#define scrollbar_map_arrows() do {XMapWindow(Xdisplay, scrollbar.up_win); XMapWindow(Xdisplay, scrollbar.dn_win);} while (0)
|
#define scrollbar_map_arrows() do {XMapWindow(Xdisplay, scrollbar.up_win); XMapWindow(Xdisplay, scrollbar.dn_win);} while (0)
|
||||||
#define scrollbar_unmap_arrows() do {XUnmapWindow(Xdisplay, scrollbar.up_win); XUnmapWindow(Xdisplay, scrollbar.dn_win);} while (0)
|
#define scrollbar_unmap_arrows() do {XUnmapWindow(Xdisplay, scrollbar.up_win); XUnmapWindow(Xdisplay, scrollbar.dn_win);} while (0)
|
||||||
#define scrollbar_get_shadow() ((scrollbar.type == SCROLLBAR_XTERM) ? (0) : (scrollbar.shadow))
|
#define scrollbar_get_shadow() ((scrollbar.type == SCROLLBAR_XTERM) ? (0) : (scrollbar.shadow))
|
||||||
|
|
|
@ -230,7 +230,7 @@ eterm_bootstrap(int argc, char *argv[])
|
||||||
scr_reset(); /* initialize screen */
|
scr_reset(); /* initialize screen */
|
||||||
|
|
||||||
/* Initialize the scrollbar */
|
/* Initialize the scrollbar */
|
||||||
scrollbar_init(szHint.width, szHint.height - bbar_total_height());
|
scrollbar_init(szHint.width, szHint.height - bbar_calc_docked_height(BBAR_DOCKED));
|
||||||
scrollbar_mapping(Options & Opt_scrollbar);
|
scrollbar_mapping(Options & Opt_scrollbar);
|
||||||
|
|
||||||
/* Initialize the menu subsystem. */
|
/* Initialize the menu subsystem. */
|
||||||
|
@ -238,8 +238,6 @@ eterm_bootstrap(int argc, char *argv[])
|
||||||
|
|
||||||
if (buttonbar) {
|
if (buttonbar) {
|
||||||
bbar_init(buttonbar, szHint.width);
|
bbar_init(buttonbar, szHint.width);
|
||||||
bbar_dock(buttonbar, BBAR_DOCKED_TOP);
|
|
||||||
bbar_show(buttonbar, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG >= DEBUG_X
|
#if DEBUG >= DEBUG_X
|
||||||
|
|
|
@ -45,7 +45,6 @@ static const char cvs_ident[] = "$Id$";
|
||||||
int
|
int
|
||||||
wait_for_chld(int system_pid)
|
wait_for_chld(int system_pid)
|
||||||
{
|
{
|
||||||
|
|
||||||
int pid, status = 0, save_errno = errno, code;
|
int pid, status = 0, save_errno = errno, code;
|
||||||
|
|
||||||
D_OPTIONS(("wait_for_chld(%ld) called.\n", system_pid));
|
D_OPTIONS(("wait_for_chld(%ld) called.\n", system_pid));
|
||||||
|
@ -57,6 +56,10 @@ wait_for_chld(int system_pid)
|
||||||
/* If the child that exited is the command we spawned, or if the
|
/* If the child that exited is the command we spawned, or if the
|
||||||
child exited before fork() returned in the parent, it must be
|
child exited before fork() returned in the parent, it must be
|
||||||
our immediate child that exited. We exit gracefully. */
|
our immediate child that exited. We exit gracefully. */
|
||||||
|
if ((pid == -1) && (errno == ECHILD)) { /* No children exist. Punt. */
|
||||||
|
errno = save_errno;
|
||||||
|
break;
|
||||||
|
}
|
||||||
D_OPTIONS(("%ld exited.\n", pid));
|
D_OPTIONS(("%ld exited.\n", pid));
|
||||||
if (pid == system_pid || system_pid == -1) {
|
if (pid == system_pid || system_pid == -1) {
|
||||||
if (WIFEXITED(status)) {
|
if (WIFEXITED(status)) {
|
||||||
|
|
19
src/term.c
19
src/term.c
|
@ -38,6 +38,7 @@ static const char cvs_ident[] = "$Id$";
|
||||||
#include "../libmej/strings.h"
|
#include "../libmej/strings.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "actions.h"
|
#include "actions.h"
|
||||||
|
#include "buttons.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
#include "events.h"
|
#include "events.h"
|
||||||
|
@ -1692,9 +1693,8 @@ xterm_seq(int op, const char *str)
|
||||||
eterm_seq_op = (unsigned char) strtol(nstr, (char **) NULL, 10);
|
eterm_seq_op = (unsigned char) strtol(nstr, (char **) NULL, 10);
|
||||||
D_CMD((" XTerm_EtermSeq operation is %d\n", eterm_seq_op));
|
D_CMD((" XTerm_EtermSeq operation is %d\n", eterm_seq_op));
|
||||||
/* Yes, there is order to the numbers for this stuff. And here it is:
|
/* Yes, there is order to the numbers for this stuff. And here it is:
|
||||||
0-9 Transparency Configuration
|
0-9 Image Class/Mode Configuration
|
||||||
10-14 Scrollbar Configuration
|
10-19 Scrollbar/Buttonbar/Menu Configuration
|
||||||
15-19 Menu Configuration
|
|
||||||
20-29 Miscellaneous Toggles
|
20-29 Miscellaneous Toggles
|
||||||
30-39 Foreground/Text Color Configuration
|
30-39 Foreground/Text Color Configuration
|
||||||
40-49 Background Color Configuration
|
40-49 Background Color Configuration
|
||||||
|
@ -1917,6 +1917,19 @@ xterm_seq(int op, const char *str)
|
||||||
nstr = (char *) strsep(&tnstr, ";");
|
nstr = (char *) strsep(&tnstr, ";");
|
||||||
OPT_SET_OR_TOGGLE(nstr, Options, Opt_scrollbar_popup);
|
OPT_SET_OR_TOGGLE(nstr, Options, Opt_scrollbar_popup);
|
||||||
break;
|
break;
|
||||||
|
case 14:
|
||||||
|
nstr = (char *) strsep(&tnstr, ";");
|
||||||
|
if (!(nstr) || !(*(nstr))) {
|
||||||
|
bbar_show_all(-1);
|
||||||
|
parent_resize();
|
||||||
|
} else if (BOOL_OPT_ISTRUE(nstr)) {
|
||||||
|
bbar_show_all(1);
|
||||||
|
parent_resize();
|
||||||
|
} else if (BOOL_OPT_ISFALSE(nstr)) {
|
||||||
|
bbar_show_all(0);
|
||||||
|
parent_resize();
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
nstr = (char *) strsep(&tnstr, ";");
|
nstr = (char *) strsep(&tnstr, ";");
|
||||||
OPT_SET_OR_TOGGLE(nstr, Options, Opt_visualBell);
|
OPT_SET_OR_TOGGLE(nstr, Options, Opt_visualBell);
|
||||||
|
|
|
@ -322,7 +322,7 @@ Create_Windows(int argc, char *argv[])
|
||||||
Attributes.colormap = cmap;
|
Attributes.colormap = cmap;
|
||||||
|
|
||||||
szHint.base_width = (2 * TermWin.internalBorder + ((Options & Opt_scrollbar) ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0));
|
szHint.base_width = (2 * TermWin.internalBorder + ((Options & Opt_scrollbar) ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0));
|
||||||
szHint.base_height = (2 * TermWin.internalBorder) + bbar_total_height();
|
szHint.base_height = (2 * TermWin.internalBorder) + bbar_calc_docked_height(BBAR_DOCKED);
|
||||||
|
|
||||||
flags = (rs_geometry ? XParseGeometry(rs_geometry, &x, &y, &width, &height) : 0);
|
flags = (rs_geometry ? XParseGeometry(rs_geometry, &x, &y, &width, &height) : 0);
|
||||||
D_X11(("XParseGeometry(geom, %d, %d, %d, %d)\n", x, y, width, height));
|
D_X11(("XParseGeometry(geom, %d, %d, %d, %d)\n", x, y, width, height));
|
||||||
|
@ -409,7 +409,7 @@ Create_Windows(int argc, char *argv[])
|
||||||
|
|
||||||
/* the vt window */
|
/* the vt window */
|
||||||
TermWin.x = (((Options & Opt_scrollbar) && !(Options & Opt_scrollbar_right)) ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0);
|
TermWin.x = (((Options & Opt_scrollbar) && !(Options & Opt_scrollbar_right)) ? (scrollbar_get_width() + (2 * scrollbar_get_shadow())) : 0);
|
||||||
TermWin.y = bbar_total_height();
|
TermWin.y = bbar_calc_docked_height(BBAR_DOCKED_TOP);
|
||||||
if ((!(Options & Opt_borderless)) && (Options & Opt_backing_store)) {
|
if ((!(Options & Opt_borderless)) && (Options & Opt_backing_store)) {
|
||||||
D_X11(("Creating term window with save_under = TRUE\n"));
|
D_X11(("Creating term window with save_under = TRUE\n"));
|
||||||
TermWin.vt = XCreateWindow(Xdisplay, TermWin.parent, TermWin.x, TermWin.y, szHint.width, szHint.height, 0, Xdepth, InputOutput, CopyFromParent,
|
TermWin.vt = XCreateWindow(Xdisplay, TermWin.parent, TermWin.x, TermWin.y, szHint.width, szHint.height, 0, Xdepth, InputOutput, CopyFromParent,
|
||||||
|
@ -480,9 +480,8 @@ void
|
||||||
update_size_hints(void)
|
update_size_hints(void)
|
||||||
{
|
{
|
||||||
D_X11(("Called.\n"));
|
D_X11(("Called.\n"));
|
||||||
szHint.base_width = (2 * TermWin.internalBorder);
|
szHint.base_width = (2 * TermWin.internalBorder) + ((scrollbar_is_visible()) ? (scrollbar_trough_width()) : (0));
|
||||||
szHint.base_height = (2 * TermWin.internalBorder) + bbar_total_height();
|
szHint.base_height = (2 * TermWin.internalBorder) + bbar_calc_docked_height(BBAR_DOCKED);
|
||||||
szHint.base_width += ((scrollbar_is_visible()) ? (scrollbar_trough_width()) : (0));
|
|
||||||
|
|
||||||
szHint.width_inc = TermWin.fwidth;
|
szHint.width_inc = TermWin.fwidth;
|
||||||
szHint.height_inc = TermWin.fheight;
|
szHint.height_inc = TermWin.fheight;
|
||||||
|
@ -504,15 +503,25 @@ update_size_hints(void)
|
||||||
void
|
void
|
||||||
term_resize(int width, int height)
|
term_resize(int width, int height)
|
||||||
{
|
{
|
||||||
|
static int last_width = 0, last_height = 0;
|
||||||
|
|
||||||
D_X11(("term_resize(%d, %d)\n", width, height));
|
D_X11(("term_resize(%d, %d)\n", width, height));
|
||||||
TermWin.width = TermWin.ncol * TermWin.fwidth;
|
TermWin.width = TermWin.ncol * TermWin.fwidth;
|
||||||
TermWin.height = TermWin.nrow * TermWin.fheight;
|
TermWin.height = TermWin.nrow * TermWin.fheight;
|
||||||
D_X11((" -> New TermWin width/height == %lux%lu\n", TermWin.width, TermWin.height));
|
D_X11((" -> New TermWin width/height == %lux%lu\n", TermWin.width, TermWin.height));
|
||||||
XMoveResizeWindow(Xdisplay, TermWin.vt, ((Options & Opt_scrollbar_right) ? (0) : ((scrollbar_is_visible()) ? (scrollbar_trough_width()) : (0))), bbar_total_height(),
|
width = TermWin_TotalWidth();
|
||||||
width, height - bbar_total_height());
|
height = TermWin_TotalHeight();
|
||||||
render_simage(images[image_bg].current, TermWin.vt, TermWin_TotalWidth(), TermWin_TotalHeight(), image_bg, 0);
|
XMoveResizeWindow(Xdisplay, TermWin.vt, ((Options & Opt_scrollbar_right) ? (0) : ((scrollbar_is_visible()) ? (scrollbar_trough_width()) : (0))),
|
||||||
if (image_mode_is(image_bg, MODE_AUTO)) {
|
bbar_calc_docked_height(BBAR_DOCKED_TOP), width, height);
|
||||||
enl_ipc_sync();
|
if (width != last_width || height != last_height) {
|
||||||
|
render_simage(images[image_bg].current, TermWin.vt, TermWin_TotalWidth(), TermWin_TotalHeight(), image_bg, 0);
|
||||||
|
scr_reset();
|
||||||
|
scr_touch();
|
||||||
|
if (image_mode_is(image_bg, MODE_AUTO)) {
|
||||||
|
enl_ipc_sync();
|
||||||
|
}
|
||||||
|
last_width = width;
|
||||||
|
last_height = height;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -525,11 +534,8 @@ parent_resize(void)
|
||||||
XResizeWindow(Xdisplay, TermWin.parent, szHint.width, szHint.height);
|
XResizeWindow(Xdisplay, TermWin.parent, szHint.width, szHint.height);
|
||||||
D_X11((" -> New parent width/height == %lux%lu\n", szHint.width, szHint.height));
|
D_X11((" -> New parent width/height == %lux%lu\n", szHint.width, szHint.height));
|
||||||
term_resize(szHint.width, szHint.height);
|
term_resize(szHint.width, szHint.height);
|
||||||
scrollbar_resize(szHint.width, szHint.height + bbar_total_height());
|
scrollbar_resize(szHint.width, szHint.height - bbar_calc_docked_height(BBAR_DOCKED));
|
||||||
bbar_resize_all(szHint.width);
|
bbar_resize_all(szHint.width);
|
||||||
if (buffer_pixmap != None) {
|
|
||||||
scr_touch();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -541,13 +547,6 @@ handle_resize(unsigned int width, unsigned int height)
|
||||||
|
|
||||||
D_EVENTS(("handle_resize(%u, %u)\n", width, height));
|
D_EVENTS(("handle_resize(%u, %u)\n", width, height));
|
||||||
if (first_time || (new_ncol != TermWin.ncol) || (new_nrow != TermWin.nrow)) {
|
if (first_time || (new_ncol != TermWin.ncol) || (new_nrow != TermWin.nrow)) {
|
||||||
int curr_screen = -1;
|
|
||||||
|
|
||||||
/* scr_reset only works on the primary screen */
|
|
||||||
if (!first_time) {
|
|
||||||
selection_clear();
|
|
||||||
curr_screen = scr_change_screen(PRIMARY);
|
|
||||||
}
|
|
||||||
TermWin.ncol = new_ncol;
|
TermWin.ncol = new_ncol;
|
||||||
TermWin.nrow = new_nrow;
|
TermWin.nrow = new_nrow;
|
||||||
|
|
||||||
|
@ -555,16 +554,8 @@ handle_resize(unsigned int width, unsigned int height)
|
||||||
szHint.width = szHint.base_width + TermWin.width;
|
szHint.width = szHint.base_width + TermWin.width;
|
||||||
szHint.height = szHint.base_height + TermWin.height;
|
szHint.height = szHint.base_height + TermWin.height;
|
||||||
D_X11((" -> New szHint.width/height == %lux%lu\n", szHint.width, szHint.height));
|
D_X11((" -> New szHint.width/height == %lux%lu\n", szHint.width, szHint.height));
|
||||||
scrollbar_resize(width, szHint.height - bbar_total_height());
|
scrollbar_resize(width, szHint.height - bbar_calc_docked_height(BBAR_DOCKED));
|
||||||
bbar_resize_all(szHint.width);
|
bbar_resize_all(szHint.width);
|
||||||
scr_reset();
|
|
||||||
if (buffer_pixmap != None) {
|
|
||||||
scr_touch();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (curr_screen >= 0) {
|
|
||||||
scr_change_screen(curr_screen);
|
|
||||||
}
|
|
||||||
first_time = 0;
|
first_time = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -572,11 +563,13 @@ handle_resize(unsigned int width, unsigned int height)
|
||||||
void
|
void
|
||||||
handle_move(int x, int y)
|
handle_move(int x, int y)
|
||||||
{
|
{
|
||||||
if (image_mode_any(MODE_TRANS | MODE_VIEWPORT)) {
|
if ((TermWin.x != x) || (TermWin.y != y)) {
|
||||||
redraw_images_by_mode(MODE_TRANS | MODE_VIEWPORT);
|
if (image_mode_any(MODE_TRANS | MODE_VIEWPORT)) {
|
||||||
|
redraw_images_by_mode(MODE_TRANS | MODE_VIEWPORT);
|
||||||
|
}
|
||||||
|
TermWin.x = x;
|
||||||
|
TermWin.y = y;
|
||||||
}
|
}
|
||||||
TermWin.x = x;
|
|
||||||
TermWin.y = y;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef XTERM_COLOR_CHANGE
|
#ifdef XTERM_COLOR_CHANGE
|
||||||
|
|
|
@ -286,6 +286,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -286,6 +286,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -285,6 +285,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -286,6 +286,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -286,6 +286,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -288,6 +288,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -285,6 +285,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
|
@ -286,6 +286,7 @@ begin main
|
||||||
bind ctrl button1 to string "\e]5;\a"
|
bind ctrl button1 to string "\e]5;\a"
|
||||||
bind ctrl button2 to string "\e[?30t"
|
bind ctrl button2 to string "\e[?30t"
|
||||||
bind ctrl button3 to menu Eterm
|
bind ctrl button3 to menu Eterm
|
||||||
|
bind ctrl shift button3 to string "\e]6;14\a"
|
||||||
end actions
|
end actions
|
||||||
|
|
||||||
# This section must also come after the menus if you want any buttons
|
# This section must also come after the menus if you want any buttons
|
||||||
|
|
Loading…
Reference in New Issue