Commit Graph

388 Commits

Author SHA1 Message Date
Marcel Hollerbach 349acb214d e_client: fix more focus weirdness
parent should be raised, even though it is not the modal.
2022-01-28 18:26:00 +01:00
Carsten Haitzler 61584a5f57 e focus - fix previous commit segv on no windows left
if window deleted is the focused on... oops - BOOM. not handled.
handle it. also revert x focus to root so bindings work.

fixes previous 2d86d75139

@fix
2022-01-07 00:10:13 +00:00
Marcel Hollerbach 2d86d75139 e_client: revert focus instead of setting it to NULL
When closing a client a few different things can happen:
1. Client hides, this will destroy the e_client object, which will
   reverts focus to another client.
2. Client hook del, this will recover focus to the root window if no
   e_client is focused.
3. Client unfocus event, setted the focused to NULL and sets the focus field to 0.

when first 1 happens then 2 or 3 everything is fine. However, it seems
that sometimes first 3 happend, then 2, then 1. Which results in focus
beeing first NULL, then recovered to the root window, resulting in the
wrong things happening.
2022-01-06 20:57:38 +01:00
Carsten Haitzler c7999bb789 protect against possible junk fullscreen windows in list 2021-10-04 13:35:08 +01:00
Carsten Haitzler 4cd3bb45c4 convert a whole lot of CRIs to ERRs that will not be useful with aborts 2021-09-12 09:14:42 +01:00
Carsten Haitzler 403435f9fd blanking - when screen blanks (pwsave freeze) set windows to iconic
also make them hidden too for good measure. this causes many clients
to stop rendering. saves power and useless cycles drawing stuff you
can't see.
2021-04-20 19:03:02 +01:00
Carsten Haitzler f8721df53a e client - override - stack above fullscreen
popup menus for fs apps would otherwise disappear.

@fix
2021-04-06 15:35:16 +01:00
Carsten Haitzler b744cd6d44 client - make default icon size for clients 128x128 now. 2021-03-04 09:17:56 +00:00
Carsten Haitzler 2fee308319 e menu acts - get proper mouse coords for eventless menu popup 2020-12-13 13:47:10 +00:00
Carsten Haitzler 22b4f766b5 e - pointer - fix hot point setting in wl mode
fixes to x .. broke wl. this fixes this to work again.
2020-11-28 19:24:46 +00:00
Carsten Haitzler 048a40414f remove offline+presentation mode - this has confused people
i've seen various people get confused as to why their screen won't
blank and never heard of anyone using offline mode. i think this can
retire and just disabkling blanking manually or as presentation/media
tools do these days... they ask to suspend screensaver anyway. yes it
also affects notifications - but that is a good question - if you want
these or not? may as well simplify.
2020-10-05 09:20:05 +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
Carsten Haitzler f6e4be1005 e wl screen dimming.blanking/timeouts/lock handling redo/fixup
so there was a fair bit of stick-tape and chewing gum in putting the
wl screensaving in e_Screensaver.c ... it thus was very different to
the x stuff. it SHOULd have had e_comp_wl handle idle timeout like the
xserver did and then glue in the same way the x code did to be
conistsent. instead of trying to fix the chewing gum ball there in
e_Screensver.c to find the logic holes ... i made it work like the
code as indicated above. this now makes it work reliably. dim
reliably. lock reliably. it even doesnt exit on ctrl+alt+backspace
once desklock is up now to allow locks to really lock... (dont use
locks during dev then if you need ctl+alt+backspace).

at least now all this dpms/screensavwr/brightness/backlight/lock goop
is consistent between wl and x11 and wl seems reliabkle now (to me).

knock this off as an annoyance fixed.

@fix
2020-06-28 15:06:37 +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 38f9b6861f menus - allow them on fullscreen windows if they are not override 2020-04-30 00:45:21 +01:00
Carsten Haitzler 6d8b24aef5 e - profile send to efl wins - fall back to getting ellm profile
use elm profile THEN .. if that fails use standard.
2020-04-19 13:44:32 +01:00
Carsten Haitzler 2f52f093b6 simplify stacking rules to be a bit dumber so stacking works better
fixes T8652
2020-04-12 16:52:40 +01:00
Carsten Haitzler 42100a1ae7 e - fix fullscreen state revert on focusing of another window if child
check the newly focused window is not part of a parent tree back to a
fullscreen window e is considering unfullscreening on loss of focus.

fixes T8651

@fix
2020-04-11 23:11:33 +01:00
Carsten Haitzler 1e2d589b14 csd - fix size hint handling and sizing to not be broken
gtk and efl can use csd. we kind of were copying gtk's but we got it
wrong... in efl. and in etoo as a result. this fixes it to use
min/bas/max size as covering the whole window including the insets.

@fix
2020-01-17 22:06:14 +00: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 6375d1a726 err logs - fix up some of the err logs i see accessing invalid objects 2019-11-08 08:45:31 +00:00
Carsten Haitzler 7edb3550dd win stacking - fix stacking transients if there are multiple
if 1 parent has 2, 3 or 4 etc. transi3ents as immediate children we
reverse-stacked them. go to stacking them in order they are added
(which would normally bve creation order which makes more sense). this
stops some dialogs appearing intitally behind other dialogs that were
there before.

@fix
2019-10-30 11:18:46 +00:00
Carsten Haitzler 48c4ea17f2 e - fix up resize/move by kbd to work again
this used to work years ago ... it seems tihave broken. this fixes it
all up to work again so you can bind a move/resize of a window tothe
kbd and then use arrow keys etc. like you used to....

@fix
2019-09-04 19:17:12 +01:00
Carsten Haitzler b30daea12c e client - check picmap type to be one of the only 2 valid ones
fix CID 1403938
2019-08-06 18:51:08 +01:00
Carsten Haitzler 540db8bd41 e - fix stacking of transients to be in newness order bottom to top
so a parent transient shows 2 dialogs... both are transient for the
parent. the newsewst one gets stacked below the older one. this leads
to really bad things like a new "are you sure" or "have an error"
modal dialog is not visible and things seemingly freeze in the
client... so stack them in order they are created instead. also handle
transients WITH transients of their own correctly this way too.

@fix
2019-06-03 12:46:09 +01: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 a6277f4f6d resolve a number of cases where a null object was passed to efl functions
Summary:
these are all harmless but will trigger error messages from efl

ref T7030

Depends on D6315

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Tags: #enlightenment-git

Maniphest Tasks: T7030

Differential Revision: https://phab.enlightenment.org/D6316
2018-06-19 12:01:43 -04:00
Thanatermesis ca99207bdc Fix for window borders to accept edje icons
If you have edje icons installed in your system (efreet smartly searches
the candidate icon based in your Icon= entry), they works correctly in
the menus, bar, etc... but doesn't works in the window borders icon,
this is because the code try's to add it without dealing with the .edj
extensions, probably attempting to load multiple image types and
returning some errors/warning, resulting in an empty icon in the window
borders

Fixes T6723
2018-02-22 19:35:38 +01:00
Mike Blumenkrantz 7b31d05ff2 unset E_Client->changes.pos when attempting to maximize a new re_manage client
a remaining client from before a restart which is maximized does not need its
position adjusted; this will cause it to go offscreen when unmaximized

ref T6414
2018-01-12 12:26:21 -05:00
Mike Blumenkrantz 6c97716899 use e_zone_desk_useful_geometry_get() for all client maximize geometry fetching
fix T6414
2018-01-12 12:26:21 -05:00
Mike Blumenkrantz f05b26c8a3 set zone/desk for clients after creating comp object
previously this resulted in attempting to move the comp object before it
was created, but evas does not throw any errors when null is passed and so
it was never noticed

fix T6317
ref T6326
2017-11-08 09:29:28 -05:00
Mike Blumenkrantz a7d5920ba6 unset E_Client->changes.pos for re_manage clients
I think this was unintentionally working around a placement bug?
2017-11-08 09:28:52 -05:00
Mike Blumenkrantz 99db9e2557 more E_BITFIELD conversions 2017-11-08 09:22:24 -05:00
Mike Blumenkrantz e7cfd06675 avoid performing client rescales during shutdown 2017-11-07 10:40:00 -05:00
Mike Blumenkrantz b5320b6246 explicitly free client animation agent object during fullscreen operation
ensure that animations do not persist after fullscreen state has been set
2017-10-31 12:04:48 -04:00
Mike Blumenkrantz bbb3ec1fc5 unset client's mouse-in state on mouse out even while fullscreen or deleted
the state should always be updated regardless of these attributes
2017-10-27 13:21:03 -04:00
Mike Blumenkrantz ef69fabd47 add client refs for the nocomp client
this client may be referenced after deletion during render loop

fix T6151
2017-10-20 13:40:20 -04:00
Mike Blumenkrantz 1d5977c02a do not unnecessarily rescale clients
this function is mainly for rescaling maximized/fullscreen clients to fit new
dimensions, so don't call on other clients since this can trigger unwanted resize
 events
2017-09-28 13:03:37 -04:00
Mike Blumenkrantz 15ea006eb5 block client rescales during render updates
this guarantees misrenders
2017-09-28 13:03:37 -04:00
Mike Blumenkrantz 11a08ebc30 don't perform zone updates on client resize
zone updates should probably only happen on client moves, not resizes

ref T6023
2017-09-21 13:31:01 -04:00
Mike Blumenkrantz 9727710647 hide clients again after show in idler if clients are on hidden desk
clients need initial show to correctly handle mirror visibility but should
then be hidden again

ref 0ee8cc896e
fix T6024
2017-09-14 12:45:45 -04:00
Mike Blumenkrantz b77e01e1dd use EC_CHANGED when setting changed flag in client idler 2017-09-14 12:43:15 -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 378e371e74 remove fullscreen clients from vdesk clients list when toggling sticky state
fix T5988
2017-09-07 13:37:20 -04:00
Mike Blumenkrantz 72b979ca2b handle first time desk setting for fullscreen clients without crashing
ref T5988
2017-09-07 13:37:20 -04:00
Mike Blumenkrantz ef6197b119 do not force client focus setting after calling e_desk_last_focused_focus()
in some cases focus setting must be deferred, and forcing focus in these cases
will create focus bugs

ref 9ae24a3a4a
2017-09-01 13:40:12 -04:00
Carsten Haitzler 9ae24a3a4a e client focus - fix focus if moving focused window to new desk - long
fix client focus the very very very long way vs
418319fc94
2017-09-01 19:29:03 +09:00
Carsten Haitzler 418319fc94 e client focus - fix focus if moving focused window to new desk
if the window being moved to a new desktop is focused, then ensure
after the move to restore focus to the last focused in the focus stack
for this desk to something stays focused.

@fix
2017-08-30 16:13:50 +09:00
Mike Blumenkrantz ec047b1a98 perform client zone updates on canvas move/resize when not ignored
overrides still need zone updates here
2017-08-25 14:47:10 -04:00