Commit Graph

71 Commits

Author SHA1 Message Date
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
Mike Blumenkrantz fdeedef7fe add E_Client->mouse.in for determining mouse-in status 2015-02-12 16:18:46 -05:00
Mike Blumenkrantz e34548db01 remove unused E_Client->input_object
this is a relic from E18
2015-02-12 16:17:50 -05:00
Mike Blumenkrantz 922af2c52f remove e_comp_list(), deprecate all related functions for pending removal
there is only one E_Comp which can now be accessed by the e_comp global.

if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable

pass -Wno-deprecated-declarations to ignore these warnings during build
2015-01-05 15:39:15 -05:00
Mike Blumenkrantz ce8a4a2b78 remove ec->changes.internal_props
this should be set directly on the win using evas/elm apis
2014-11-20 15:26:22 -05:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Mike Blumenkrantz 3b649534c9 Fix building Enlightenment for X11-only, Wayland-Only, and X11 with Wayland clients.
Signed-off-by: Chris Michael <cp.michael@samsung.com>

Additional authors: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael 0ba4fecd76 change client transient_for id to uint64_t
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael fc21ca524c fix define check for wayland client uuid store
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 0b0c464efd fix e_client sructure for running wayland client applications inside X.
update compositor structure for ability to run X and Wayland Clients.
update wayland compositor data & input file(s) for data structure rename.

NB: Both the X compositor and the Wayland compositor have different
"client data" to store, so e_client structure needs different fields

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Carsten Haitzler 525b963133 transient client windows - improve behavior
* if unplaced, place centered on transient-for on initial placement
  rather that screen centered
* if transient.move and transient.resize options follow options are on
  make transients floow as intended
2014-08-25 20:56:08 +09:00
Mike Blumenkrantz 6d0ef37821 fix client struct alignment when using x + wl 2014-08-04 18:00:55 -04:00
Mike Blumenkrantz 291c1f7cc5 break out client border setting into separate function 2014-07-28 08:42:24 -04:00
Mike Blumenkrantz 3c7fab995c +e_client_layout_cb_set()
let's keep client hooks for clients.
2014-07-07 13:42:47 -04:00
Mike Blumenkrantz db49d8cc75 Revert "bring back client hook that breaks illume2 + contact"
This reverts commit 36c3d15c0b.
2014-07-07 13:29:59 -04:00