Commit Graph

85 Commits

Author SHA1 Message Date
Alastair Poole af560c6566 procstats: window resource module.
The module sends messages which the theme displays. Thus, the
module requires a theme with an implemented edj script to be
useful.

Currently EFL 1.26 includes a basic text label for this...
Usage is recursive...everything under the window is included.

Rudimentary, as usual...please do something pretty...

RFC. Hopefully I didn't break the universe...again!
2020-09-23 19:57:24 +01:00
Carsten Haitzler 73d305d2a8 client - restore to added zone if were there before
rememebr zone randr id where clients were if forced off a zone. if a
zone is added check clients with that zone id - if they have it then
restore them there. thbis will get loat if you move those clients
between zones after they are dumped on the other zone or you change
their virtual desktop etc.
2020-07-28 19:47:10 +01:00
Carsten Haitzler 02707fd2ef fullscreen handling - restore fs state if forced out by focus
much better behavior this way...
2020-07-28 19:47:10 +01:00
Elyes HAOUAS 3524bc167c tree-wide: get rid of trailing whitespace (part 1)
Remove trailing white spaces.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11780
2020-05-14 12:30:31 +02:00
Carsten Haitzler 60324a7b2c steam - special workaround for bad steam games so they match desktops
many steam games don't provide much in properites - not enough to
match to a desktop file. the only thing that actually consistently
works is to use the STEAM_GAME property and match thyat to the uri
provided to the steam command in the exec of the desktop file. this
actually can work. nothing else works reliably across the board.

and man can games be horrible and playing nice with desktops and
having poor properties. even steam itself is not good. i had to add a
workaround for that too to match steam-runtime explicitly. :(
2019-11-10 01:33:39 +00:00
Carsten Haitzler 6321664f08 e - winlist/client - don't leave dangling action on window
as winlist doesn't target specific windows ... don't leave the action
on the window dangling there. finally fixes T6415
2018-11-20 19:08:25 +00:00
Mike Blumenkrantz 59fa0e418d use E_BITFIELD define for bitfield struct members
on release builds this will be a bitfield, on devel builds it will make
bools a normal unsigned char for easier debugging
2017-11-07 10:39:56 -05:00
Mike Blumenkrantz 15ea006eb5 block client rescales during render updates
this guarantees misrenders
2017-09-28 13:03:37 -04:00
Mike Blumenkrantz 20ea0ed150 add/use helper function for rescaling individual clients
in any case where client needs to be rescaled to use new screen geometry
certain things must happen, such as handling shaded state and forcing the
new geometry to be applied
2017-09-12 13:21:04 -04:00
Mike Blumenkrantz 2b984e68b9 add MISC client property event to be manually triggered whenever misc props change
there's too many properties to create flags/events for all of them, so just use this
if it's one of the many misc props

currently only used for skip_{pager,taskbar,winlist}
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz 29617bf80b move Ecore_X_Stack_Type member from client to x11 comp_data
no functional changes
2017-08-04 16:05:15 -04:00
Mike Blumenkrantz 94633fbde1 fix wayland-only build 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz b4be7040a6 break out client transient restacking into function
this is nontrivial and breaks things when incorrectly applied
2017-04-07 16:08:37 -04:00
Mike Blumenkrantz b223ed0981 add E_Client->saved.set
this indicates that saved geometry has been set and should not be
updated during maximize

currently only used to handle transition from fullscreen -> maximize
2017-03-24 13:17:24 -04:00
Mike Blumenkrantz 2f6f31f2a7 add client hook for UNIGNORE
UNIGNORE is the hook to watch for wl clients as they are added; the
ignore mechanism prevents most of the compositor from processing
clients. this is a stupid method from an api perspective since it's
different in x11 and wl, so it should probably be improved on in the future
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 51782fd5ee Revert "e - wayland - fix double-resize if e wants a different initial size"
This reverts commit e1c3120689.

this commit revealed a number of issues with the xdg6 implementation related
to unconfigured buffer management: see subsequent patches for a less
sledgehammer-y solution

ref 5497fadce4
2017-02-10 17:24:13 -05:00
Carsten Haitzler e1c3120689 e - wayland - fix double-resize if e wants a different initial size
let's say you sue tiling or some module and it wants a window by
default to maximize or fill the screen or be size XxY ... this stops
the client first having a buffer smaller (or larger) and then sizing
down rendering 2 times (one of the renders is pointless). this makes
initial buffer render/show seamless as it should be in wayland.
2017-02-10 19:23:43 +09:00
Mike Blumenkrantz d1bb23954f break out code to set clients as transients for a parent 2017-01-13 11:33:36 -05:00
Carsten Haitzler c6fa2f6457 tasks - add stack "hiding" support and only show top stack item
this makes tasks behave like you'd expect with a stack - only show the
top one and track properly. tasks was simple and easiest to do first
as it has little fluff other than the tasks logic itself. other
elements of e next...
2016-12-16 18:59:56 +09:00
Carsten Haitzler 5c38609e0e client handling - add support for window stacks needed for views/manager
this adds core basic handling for window stacks where windows behave
correctly as a single unified stack something like what naviframe does
but out-of-window so you can including multiple processes. only on x11
right now as it's being supported/worked on.

as we dont plan to kepe naviframe in future, this is the way to go.
naviframe "pages" will be windows in a stack. the wm should do the
nice thing. in e this will be very nice. for now elsewhere we use
transient_for so a wm would treat this like a bunch of dialogs with a
single parent window. i guess in a desktop thats probably what you
might expect. e will be a little more "finesse" filled.

need to make ibar, tasks,m win menu and winlist (alt-tab) respect this
and only show the top member of a stack.

need to send messages to clients when they are "top" or "middle" or
"bottom" or "alone" in the stack or something so decorations can change.

should add soem new border signals in theme (for both SSD and CSD) to
make this look nice. will need some config additions for that and
ability for e comp to do the right thing

but this is a solid start
2016-12-16 16:17:10 +09:00
Michaël Bouchaud (yoz) 06ea6cadbd E_Client: add an abstraction api to control volume by app
This api give the possibility to add sink to an E_Client and control the volume
or the mute state of the sinks associated with this E_Client.

@features
2016-10-27 21:54:39 +02:00
Mike Blumenkrantz f434891137 redo session recovery handling to use separate E_Remember
I tried to be too clever with the initial implementation of this and it was
a lot more complex and nonfunctional than expected
2016-10-27 11:22:27 -04:00
Mike Blumenkrantz ef1772b8cb implement wl client session recovery
another small feature patch brought to you by insomnia

 #SamsungFeatures
2016-05-05 15:47:55 -04:00
Mike Blumenkrantz 4cbf81b1e8 add E_Client->saved.frame to handle mismatched csd states
if csd exists in only one of (before || after) a maximize/fullscreen,
this provides info so that the right size can be used when restoring
geometry

...again
2016-04-11 14:28:31 -04:00
Mike Blumenkrantz 4c6a4ea4ce track client maximize animation agents, delete upon beginning new animation
fixes an issue where unmaximize+maximize chaining would break client sizing
2016-04-08 16:45:56 -04:00
Mike Blumenkrantz a7adf21c88 add E_Client->maximize_anims_disabled to selectively disable maximize anims
for some clients it's impossible to animate resizing due to various race conditions
being created which will break the client
2016-04-08 16:01:55 -04:00
Mike Blumenkrantz b4b682cd6a make a number of client functions take const E_Client* 2016-04-08 15:57:21 -04:00
Mike Blumenkrantz 8d56ff3eec break out client maximize/unmaximize calc functions into preview functions
these enable "previewing" a client's size after toggling the maximize state,
not accounting for any csd or ssd sizing changes
2016-04-08 15:55:27 -04:00
Mike Blumenkrantz e9bca1abaa Revert "add E_Client->saved.frame to handle mismatched csd states"
This reverts commit ae7af6b8ef.

this was a workaround for an entirely different issue, and it didn't even
solve that issue
2016-04-06 16:39:55 -04:00
Mike Blumenkrantz ae7af6b8ef add E_Client->saved.frame to handle mismatched csd states
if csd exists in only one of (before || after) a maximize/fullscreen,
this provides info so that the right size can be used when restoring
geometry
2016-04-05 16:52:50 -04:00
Mike Blumenkrantz 3cb11abb25 move x11 client icon caching to private functions in comp_x
ref 57ce6419e5
2016-04-01 14:16:21 -04:00
Carsten Haitzler 57ce6419e5 e icons: reduce mem usage (in x11) by a fair bit by de-duplicating
so i was profiling today .. leak hunting .. and i noticed. if you have
enough appss open - eg terminology, e uses a huge amount of memory...
for icons. terminology is 128x128 ...  thats 64k per icon. open up a
lot of terminology windows and we duplicate that 64k per every window
on the wm sside because we get the data. it would apply for any app
that sets a netwm icon. this can be come rather silly if you have like
100 terminals. it's worse with larger icons (eg 256x256 - 256k per
icon).

this puts in a simply list for shared icons and a lookup on fetch to
de-duplicate and share icon data. this should drop memory usage
nicely.

@improvement
2016-04-01 20:33:52 +09:00
Derek Foreman e4490c4bf6 Re-enable window close animations for wayland
These should work properly with the new buffer management code.
2016-03-08 12:46:32 -05:00
Derek Foreman a35c7637a2 Track whether objects are on the post_updates list or not
Will use this to prevent accidentally adding objects to the list twice
2016-03-08 12:46:32 -05:00
Mike Blumenkrantz bd776b157f add e_client_unignore() for triggering events when unignoring a client
mainly for use in wayland compositing since all surfaces are ignored
until they get a shell surface or a commit
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz ecb5f4ca41 add E_Client->keyboard_resizing flag
there is no other indication of whether a client is resizing using the
keyboard, so this should serve as an adequate hint
2015-07-15 18:07:12 -04:00
Mike Blumenkrantz 8e5a2cb430 add client util function for determining if a backing xwindow exists 2015-07-01 16:40:10 -04:00
Mike Blumenkrantz 2ae8d726f3 HAVE_WAYLAND_CLIENTS || HAVE_WAYLAND_ONLY -> HAVE_WAYLAND
these are semantically identical
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 7f63c4ec2d allow comp matching for UNKNOWN type windows
sometimes this is a valid type and we want to match it
2015-06-11 11:33:45 -04:00
Yomi 413463d2cd Fix misspelling in e_client.h
Summary: Fix misspelling in e_client.h

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2477
2015-05-07 19:01:05 -04:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Mike Blumenkrantz 3498c6caf8 add colorclass editor to app menu 2015-04-05 16:27:18 -04:00
Mike Blumenkrantz 2cb00285fd remove E_Comp from E_Client_Layout_Cb 2015-03-18 11:37:27 -04:00
Mike Blumenkrantz 1736d1ecb9 e_client functions no longer require E_Comp param 2015-03-13 16:53:19 -04:00
Mike Blumenkrantz 91edd1ce2f E_CLIENT_*FOREACH() macros no longer take a E_Comp param 2015-03-13 15:45:07 -04:00
Mike Blumenkrantz 091142b032 remove E_Client->comp 2015-03-13 15:41:21 -04:00
Mike Blumenkrantz 38e12a0370 add E_Client->dead to mark clients that should immediately be removed from the compositor
theme_shadow was unused
2015-03-05 12:16:53 -05:00
Mike Blumenkrantz c6f0597774 remove ec->awaiting_hide_event
no longer used
2015-03-02 14:27:29 -05:00
Mike Blumenkrantz 23c4d42e4c rename extremely frustratingly-named E_Screen_Limits enum and members
this came in a patch that I take full responsibility for not adequately reviewing at the time.
the names are confusing and counterintuitive, and it does not properly include the client namespace.
2015-02-18 18:34:29 -05:00
Mike Blumenkrantz e2b02d07d5 add first YOLO: e_client_focus_stack_set()
to quote ecore docs:

DO NOT use this function unless you are the person God comes to ask for
advice when He has trouble managing the Universe.
2015-02-13 15:46:52 -05:00