mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-21 05:57:05 +00:00
openbox: add 3.4.11.2
This version inclues O.S. Systems' internal tree fixes and a sync against 3.4-working branch. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
This commit is contained in:
committed by
Koen Kooi
parent
5fdcce5941
commit
a8f2001c7c
@@ -0,0 +1,73 @@
|
|||||||
|
Fix client decorations
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
diff --git a/openbox/client.c b/openbox/client.c
|
||||||
|
index c65e350..1c82763 100644
|
||||||
|
--- a/openbox/client.c
|
||||||
|
+++ b/openbox/client.c
|
||||||
|
@@ -1733,8 +1733,20 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig)
|
||||||
|
switch (self->type) {
|
||||||
|
case OB_CLIENT_TYPE_NORMAL:
|
||||||
|
/* normal windows retain all of the possible decorations and
|
||||||
|
- functionality, and can be fullscreen */
|
||||||
|
- self->functions |= OB_CLIENT_FUNC_FULLSCREEN;
|
||||||
|
+ functionality, and can be fullscreen, unless if it can't be resized */
|
||||||
|
+ if (self->functions & OB_CLIENT_FUNC_RESIZE)
|
||||||
|
+ self->functions |= OB_CLIENT_FUNC_FULLSCREEN;
|
||||||
|
+ else {
|
||||||
|
+ self->decorations &= ~(OB_FRAME_DECOR_HANDLE |
|
||||||
|
+ OB_FRAME_DECOR_MAXIMIZE);
|
||||||
|
+
|
||||||
|
+ self->functions &= ~OB_CLIENT_FUNC_MAXIMIZE;
|
||||||
|
+
|
||||||
|
+ self->mwmhints.decorations &= ~(OB_MWM_DECOR_HANDLE |
|
||||||
|
+ OB_MWM_DECOR_MAXIMIZE);
|
||||||
|
+
|
||||||
|
+ self->mwmhints.functions &= ~OB_MWM_FUNC_MAXIMIZE;
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OB_CLIENT_TYPE_DIALOG:
|
||||||
|
diff --git a/openbox/frame.c b/openbox/frame.c
|
||||||
|
index 64dd290..fc84f2f 100644
|
||||||
|
--- a/openbox/frame.c
|
||||||
|
+++ b/openbox/frame.c
|
||||||
|
@@ -1209,6 +1209,7 @@ static void layout_title(ObFrame *self)
|
||||||
|
firstcon = &self->rightmost;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ self->decorations = self->client->decorations;
|
||||||
|
/* stop at the end of the string (or the label, which calls break) */
|
||||||
|
for (; *lc != '\0' && lc >= config_title_layout; lc+=i) {
|
||||||
|
if (*lc == 'L') {
|
||||||
|
@@ -1217,23 +1218,23 @@ static void layout_title(ObFrame *self)
|
||||||
|
self->label_x = x;
|
||||||
|
}
|
||||||
|
break; /* break the for loop, do other side of label */
|
||||||
|
- } else if (*lc == 'N') {
|
||||||
|
+ } else if (*lc == 'N' && (self->decorations & OB_FRAME_DECOR_ICON)) {
|
||||||
|
if (firstcon) *firstcon = OB_FRAME_CONTEXT_ICON;
|
||||||
|
/* icon is bigger than buttons */
|
||||||
|
place_button(self, lc, bwidth + 2, left, i, &x, &self->icon_on, &self->icon_x);
|
||||||
|
- } else if (*lc == 'D') {
|
||||||
|
+ } else if (*lc == 'D' && (self->decorations & OB_FRAME_DECOR_ALLDESKTOPS)) {
|
||||||
|
if (firstcon) *firstcon = OB_FRAME_CONTEXT_ALLDESKTOPS;
|
||||||
|
place_button(self, lc, bwidth, left, i, &x, &self->desk_on, &self->desk_x);
|
||||||
|
- } else if (*lc == 'S') {
|
||||||
|
+ } else if (*lc == 'S' && (self->decorations & OB_FRAME_DECOR_SHADE)) {
|
||||||
|
if (firstcon) *firstcon = OB_FRAME_CONTEXT_SHADE;
|
||||||
|
place_button(self, lc, bwidth, left, i, &x, &self->shade_on, &self->shade_x);
|
||||||
|
- } else if (*lc == 'I') {
|
||||||
|
+ } else if (*lc == 'I' && (self->decorations & OB_FRAME_DECOR_ICONIFY)) {
|
||||||
|
if (firstcon) *firstcon = OB_FRAME_CONTEXT_ICONIFY;
|
||||||
|
place_button(self, lc, bwidth, left, i, &x, &self->iconify_on, &self->iconify_x);
|
||||||
|
- } else if (*lc == 'M') {
|
||||||
|
+ } else if (*lc == 'M' && (self->decorations & OB_FRAME_DECOR_MAXIMIZE)) {
|
||||||
|
if (firstcon) *firstcon = OB_FRAME_CONTEXT_MAXIMIZE;
|
||||||
|
place_button(self, lc, bwidth, left, i, &x, &self->max_on, &self->max_x);
|
||||||
|
- } else if (*lc == 'C') {
|
||||||
|
+ } else if (*lc == 'C' && (self->decorations & OB_FRAME_DECOR_CLOSE)) {
|
||||||
|
if (firstcon) *firstcon = OB_FRAME_CONTEXT_CLOSE;
|
||||||
|
place_button(self, lc, bwidth, left, i, &x, &self->close_on, &self->close_x);
|
||||||
|
} else
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
Fix dialog support
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
diff --git a/openbox/client.c b/openbox/client.c
|
||||||
|
index 4d54b38..c65e350 100644
|
||||||
|
--- a/openbox/client.c
|
||||||
|
+++ b/openbox/client.c
|
||||||
|
@@ -562,6 +562,14 @@ void client_manage(Window window, ObPrompt *prompt)
|
||||||
|
/* free the ObAppSettings shallow copy */
|
||||||
|
g_free(settings);
|
||||||
|
|
||||||
|
+ /* force dialogs to skip taskbar */
|
||||||
|
+ if (self->type == OB_CLIENT_TYPE_DIALOG) {
|
||||||
|
+ self->skip_taskbar = TRUE;
|
||||||
|
+
|
||||||
|
+ gulong state = prop_atoms.net_wm_state_skip_taskbar;
|
||||||
|
+ PROP_SET32(self->window, net_wm_state, atom, state);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
ob_debug("Managed window 0x%lx plate 0x%x (%s)\n",
|
||||||
|
window, self->frame->window, self->class);
|
||||||
|
|
||||||
|
@@ -1733,6 +1741,14 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig)
|
||||||
|
/* sometimes apps make dialog windows fullscreen for some reason (for
|
||||||
|
e.g. kpdf does this..) */
|
||||||
|
self->functions |= OB_CLIENT_FUNC_FULLSCREEN;
|
||||||
|
+ /* these windows cannot be maximized or minimized*/
|
||||||
|
+ self->decorations &= ~(OB_FRAME_DECOR_ICONIFY |
|
||||||
|
+ OB_FRAME_DECOR_MAXIMIZE |
|
||||||
|
+ OB_FRAME_DECOR_HANDLE);
|
||||||
|
+
|
||||||
|
+ self->functions &= ~(OB_CLIENT_FUNC_ICONIFY |
|
||||||
|
+ OB_CLIENT_FUNC_MAXIMIZE |
|
||||||
|
+ OB_CLIENT_FUNC_RESIZE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OB_CLIENT_TYPE_UTILITY:
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,40 @@
|
|||||||
|
DESCRIPTION = "openbox Window Manager"
|
||||||
|
SECTION = "x11/wm"
|
||||||
|
LICENSE = "GPLv2+"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||||
|
|
||||||
|
SRC_URI = "http://icculus.org/openbox/releases/openbox-${PV}.tar.gz \
|
||||||
|
file://fix-dialog-buttons.patch;patch=1 \
|
||||||
|
file://fix-decorations.patch;patch=1"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "30e669134fa81df810fe7d1dc59cd931"
|
||||||
|
SRC_URI[sha256sum] = "2e7579389c30e6bb08cc721a2c1af512e049fec2670e71715aa1c4e129ec349d"
|
||||||
|
|
||||||
|
inherit autotools gettext update-alternatives
|
||||||
|
|
||||||
|
ALTERNATIVE_PATH = "${bindir}/openbox"
|
||||||
|
ALTERNATIVE_NAME = "x-window-manager"
|
||||||
|
ALTERNATIVE_LINK = "${bindir}/x-window-manager"
|
||||||
|
ALTERNATIVE_PRIORITY = "10"
|
||||||
|
|
||||||
|
EXTRA_OECONF += "--with-plugins=none"
|
||||||
|
|
||||||
|
PACKAGES =+ "${PN}-core ${PN}-lxde ${PN}-gnome"
|
||||||
|
|
||||||
|
PACKAGES_DYNAMIC += "${PN}-theme-*"
|
||||||
|
|
||||||
|
python populate_packages_prepend() {
|
||||||
|
theme_dir = bb.data.expand('${datadir}/themes/', d)
|
||||||
|
theme_name = bb.data.expand('${PN}-theme-%s', d)
|
||||||
|
do_split_packages(d, theme_dir, '(.*)', theme_name, '${PN} theme for %s', extra_depends='', allow_dirs=True)
|
||||||
|
}
|
||||||
|
|
||||||
|
RDEPENDS_${PN} += "${PN}-core"
|
||||||
|
FILES_${PN}-core = "${bindir}/openbox ${libdir}/*${SOLIBS}"
|
||||||
|
|
||||||
|
FILES_${PN}-lxde += "${datadir}/lxde/ \
|
||||||
|
${datadir}/lxpanel \
|
||||||
|
${datadir}/xsessions \
|
||||||
|
${datadir}/icons"
|
||||||
|
|
||||||
|
FILES_${PN}-gnome += "${datadir}/gnome/"
|
||||||
Reference in New Issue
Block a user