repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 1f3878ad573690d28396941170aa52eb8bd17e26: path_to: revision_to:
commit 1f3878ad573690d28396941170aa52eb8bd17e26 Author: Marc LehmannDate: Sat Feb 11 02:28:19 2006 +0000 *** empty log message *** diff --git a/src/hookinc.h b/src/hookinc.h
--- a/src/hookinc.h +++ b/src/hookinc.h @@ -41,6 +41,7 @@ def (WM_DELETE_WINDOW) def (WM_PROTOCOLS) def (PROPERTY_NOTIFY) + def (RESIZE_ALL_WINDOWS) def (XIM_PREEDIT_START) def (XIM_PREEDIT_DONE) diff --git a/src/main.C b/src/main.C
--- a/src/main.C
+++ b/src/main.C
@@ -706,9 +706,9 @@ rxvt_term::window_calc (unsigned int newwidth, unsigned int newheight)
window_vt_x += sb_w;
}
- szHint.width_inc = fwidth;
+ szHint.width_inc = fwidth;
szHint.height_inc = fheight;
- szHint.min_width = szHint.base_width + szHint.width_inc;
+ szHint.min_width = szHint.base_width + szHint.width_inc;
szHint.min_height = szHint.base_height + szHint.height_inc;
if (newwidth && newwidth - szHint.base_width < max_width)
@@ -1035,7 +1035,9 @@ rxvt_term::resize_all_windows (unsigned int newwidth, unsigned int newheight, in
int old_height = szHint.height;
window_calc (newwidth, newheight);
- XSetWMNormalHints (dpy, parent[0], &szHint);
+
+ if (!HOOK_INVOKE ((this, HOOK_RESIZE_ALL_WINDOWS, DT_INT, newwidth, DT_INT, newheight, DT_END)))
+ XSetWMNormalHints (dpy, parent[0], &szHint);
if (!ignoreparent)
{
diff --git a/src/perl/tabbed b/src/perl/tabbed
--- a/src/perl/tabbed
+++ b/src/perl/tabbed
@@ -86,6 +86,12 @@ sub configure {
);
}
+sub on_resize_all_windows {
+ my ($self, $width, $height) = @_;
+
+ 1
+}
+
sub copy_properties {
my ($self) = @_;
my $tab = $self->{cur};
@@ -105,12 +111,17 @@ sub copy_properties {
if ($atom == $wm_normal_hints) {
my (@hints) = unpack "l!*", $items;
-
+
$hints[$_] += $self->{tabheight} for (4, 6, 16);
-
+
$items = pack "l!*", @hints;
}
- $self->XChangeWindowProperty ($self->parent, $atom, $type, $format, $items);
+
+ my ($dtype, $dformat, $ditems) = $self->XGetWindowProperty ($self->parent, $atom);
+
+ if ($dtype != $type or $dformat != $format or $ditems ne $items) {
+ $self->XChangeWindowProperty ($self->parent, $atom, $type, $format, $items);
+ }
}
$self->XDeleteProperty ($self->parent, $_) for keys %our_props;
diff --git a/src/rxvtperl.xs b/src/rxvtperl.xs
--- a/src/rxvtperl.xs
+++ b/src/rxvtperl.xs
@@ -1814,7 +1814,6 @@ rxvt_term::XChangeWindowProperty (Window window, Atom property, Atom type, int f
XChangeProperty (THIS->dpy, window, property,
type, format, PropModeReplace,
(unsigned char *)data_, len / elemsize);
- XSync (THIS->dpy, 0);
}
Atom
-----END OF PAGE-----