WISH: http://www120.pair.com/mccarthy/nextstep/intro.htmld/Workspace.html is the correct nextstep look.
DUMB: support tex fonts
+ - improve property handling for -pe tabbed: avoid unneecssary property
+ changes (for kde's benefit) at the expense of extra round-trips,
+ improve size hint setting.
+
7.6 Fri Feb 10 08:52:36 CET 2006
- changed interpretation of [alpha] colour prefix.
- +option now really sets the option to default, instead of using the
def (WM_DELETE_WINDOW)
def (WM_PROTOCOLS)
def (PROPERTY_NOTIFY)
+ def (RESIZE_ALL_WINDOWS)
def (XIM_PREEDIT_START)
def (XIM_PREEDIT_DONE)
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)
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)
{
);
}
+sub on_resize_all_windows {
+ my ($self, $width, $height) = @_;
+
+ 1
+}
+
sub copy_properties {
my ($self) = @_;
my $tab = $self->{cur};
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;
XChangeProperty (THIS->dpy, window, property,
type, format, PropModeReplace,
(unsigned char *)data_, len / elemsize);
- XSync (THIS->dpy, 0);
}
Atom
The event is simply the action string. This interface is assumed to change
slightly in the future.
+=item on_resize_all_windows $tern, $new_width, $new_height
+
+Called just after the new window size has been calculcated, but before
+windows are actually being resized or hints are being set. If this hook
+returns TRUE, setting of the window hints is being skipped.
+
=item on_x_event $term, $event
Called on every X event received on the vt window (and possibly other