Re: [E-devel] [EGIT] [enlightenment] 01/01: e_hints: advertise Java non-reparenting WM support
Carsten Haitzler <[email protected]> Sat, 25 Apr 2026 23:35:18 +0100
| Newsgroups | gmane.comp.window-managers.enlightenment.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sat, 25 Apr 2026 16:39:19 +0000 Enlightenment Git <[email protected]> said: this can't be right... e *IS* a reparenting wm... and missing repaints... that smells to me of a java bug. x server itself will send expose events for a window when it needs updates - not wm, and those will be areas newly exposed etc. ... and that is what an x client should respond to on redraw. > This is an automated email from the git hooks/post-receive script. > > git pushed a commit to branch master > in repository enlightenment. > > > View the commit online.commit 8986231c3c3b39f9f6516f6b6bf91be3f2082364 > Author: Alastair Poole <[email protected]> > AuthorDate: Sat Apr 25 17:38:18 2026 +0100 > > e_hints: advertise Java non-reparenting WM support > > Sets _JAVA_AWT_WM_NONREPARENTING=1 on the X11 root window during hints > initialization. This makes Java AWT/Swing correctly detect Enlightenment as a > non-reparenting WM without requiring user env vars. With correct detection, > Java uses the right event/paint path for window state transitions, fixing > stale or missing repaints after minimize/maximize. > --- > src/bin/e_hints.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c > index 3b3371bd4..abe8490d3 100644 > --- a/src/bin/e_hints.c > +++ b/src/bin/e_hints.c > @@ -3,6 +3,7 @@ > #ifndef HAVE_WAYLAND_ONLY > static void e_hints_e16_comms_pretend(Ecore_X_Window root, Ecore_X_Window > propwin); static void e_hints_openoffice_gnome_fake(Ecore_Window root); > +static void e_hints_java_nonreparenting_fake(Ecore_Window root); > //static void e_hints_openoffice_kde_fake(Ecore_Window root); > > E_API Ecore_X_Atom ATM__QTOPIA_SOFT_MENU = 0; > @@ -216,6 +217,8 @@ e_hints_init(Ecore_Window root, Ecore_Window propwin) > ecore_x_netwm_wm_identify(root, propwin, "Enlightenment"); > /* this makes openoffice.org read gtk settings so it doesn't look like > shit */ e_hints_openoffice_gnome_fake(root); > +/* this makes java detect non-reparenting without relying on env vars */ > + e_hints_java_nonreparenting_fake(root); > > ecore_x_netwm_supported_set(root, supported, supported_num); > > @@ -229,6 +232,17 @@ e_hints_init(Ecore_Window root, Ecore_Window propwin) > } > > #ifndef HAVE_WAYLAND_ONLY > +static void > +e_hints_java_nonreparenting_fake(Ecore_Window root) > +{ > + Ecore_X_Atom atm_java_nonreparenting; > + const char *string = "1"; > + > + atm_java_nonreparenting = ecore_x_atom_get("_JAVA_AWT_WM_NONREPARENTING"); > + ecore_x_window_prop_property_set(root, atm_java_nonreparenting, > ECORE_X_ATOM_STRING, > + 8, (void *)string, strlen(string)); > +} > + > /* > * This is here so we don't have to pretend to be Kwin anymore - we > pretend > * to do old e16 style ipc. in fact we just ignore it... but set up the > > > -- > To stop receiving notification emails like this one, please contact > the administrator of this repository. -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- Carsten Haitzler - [email protected]