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&#x27;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&#x27;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]