Commit Graph

17606 Commits

Author SHA1 Message Date
Mike Blumenkrantz 925468fbe9 shadow toggling wip 2015-12-05 11:59:16 -05:00
Mike Blumenkrantz a6ded999a9 use client geometry for calculations in x11 ConfigureRequest handler
the values requested by the client will be based on its geometry and not
the geometry of the frame. using the frame geometry here results in windows
moving ↘ based on the top/left frame sizes

fix T2912
2015-12-04 16:00:38 -05:00
Mike Blumenkrantz efab05af1c add config option for allowing sticky windows to receive focus reverts
since forever, sticky windows have not been allowed to receive focus after
various events, eg. desk flip or window close. in some workflows, however,
this may actually be desired behavior

disabled by default

fix T2837
2015-12-04 16:00:38 -05:00
Mike Blumenkrantz ef9bb4325e remove e_comp_wl struct keyboard repeat members
duplicating these from e_config serves no purpose

ref D3364
2015-12-04 16:00:38 -05:00
Sung-Jin Park 004c791da5 (1) e_config.c/e_comp_wl.c: add code for making repeat values configurable
(2) e.src(s): add keyboard.repeat_delay, keyboard.repeat_rate into e.src files

Summary:
As of now, the default values of repeat delay/rate are being set in e_comp_wl.c.
Those values need to be configurable and will be used in e_comp_wl_init().
The limit of each of the values is defined from -1 to 1000. (maximum 1s).
If one of the two is negative, it means default repeat delay/rate are going to be used.
(e.g. delay:400, rate:25)

Test Plan:
N/A

Signed-off-by: Sung-Jin Park <input.hacker@gmail.com>

Reviewers: raster, stefan_schmidt, gwanglim, devilhorns, zmike

Subscribers: Jeon, ohduna, cedric

Differential Revision: https://phab.enlightenment.org/D3364
2015-12-04 16:00:37 -05:00
Derek Foreman d7e1988477 Stop using MIN macros when choosing versions for wayland resources
Summary:
libwayland-server.so will post an error if the requested version
is higher than the supported one anyway, so there's no point in
doing this.

Using MIN() to pick versions is a client side idiom.

 #kansas

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3385
2015-12-04 16:00:37 -05:00
Stefan Schmidt 3f0b2c2373 e_menu: use Eina_Bool for one-bit bitfield
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-12-04 16:00:37 -05:00
Stefan Schmidt 7da17dc3ed e_gadcon: use Eina_Bool for one-bit bitfield
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-12-04 16:00:37 -05:00
Stefan Schmidt b266264b09 pulse backend: correct declaration of function with no parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
2015-12-04 16:00:37 -05:00
Stefan Schmidt 605be2354c e_fm:correct declaration of function with no parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.

Thanks for the sparse semantic parser for pointing this out.
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz ade1e9a02f re-swallow bg_object after wallpaper transition has completed
fixes eventing/stacking on bg object
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz b72f5e29d9 allow more client hooks to bypass delete check
failing to propagate these signals can result in a broken compositor
when a client is deleted before/during an operation
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz cf463057eb do not apply max client geometry restriction if max geometry is not set
default values for these is set to a very high value, but it's possible
(and guaranteed) for some clients to set them to a value <= 0, which results
in a broken window
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz c05b284b4f use CSD geometry during move/resize display
this should provide more user-relevant information
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 874c9d43bd adjust for SSD geometry during wayland client resize
client moveinfo includes the frame geometry, so this must be taken
into account when resizing a client which has a frame

fix T2863
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz a30c4b574e avoid setting incorrect geometry during new_client frame calc
in the case where a client has no geometry set, attempting to update
the client's geometry during frame recalc will guarantee that wrong
geometry is set, resulting in a bad first frame
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz eb4ed14e2a declare xwayland functions prior to using them
#CompileFail
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 96035d4d5d use separate handler for x11 fatal errors when using xwayland
a fatal error with xwayland is not a fatal error for the compositor,
so this should not result in a dead session
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 04d552042d add mechanism for preventing unload of important modules during runtime
if a wayland output module is unloaded while the compositor is still
active, bad things will happen
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 6addb294c8 fix all shadow warnings in msgbus module
ref cdb436ee86
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 2c32787b87 reenable restart/shutdown dbus methods under x11 2015-12-04 16:00:37 -05:00
Carsten Haitzler 8a7280f87d e - efm - rate limit dbus requests to open dirs or files to avoid dos
in a wayland wold we dont want to trust clients on the other side of a
dbus connection - so rate limit what you can do with efm dbus requests

@fix
2015-12-04 16:00:37 -05:00
Carsten Haitzler 04036826da e msgbus - move almost all of core dbus methods to msgbus module
for security reaons, all the dbus methods that allow you to mess with
e are now in the msgbus module - load at your own risk. this is
irrelevant in x11, but in wayland this matters as wayland is actually
secure.

this also disables restart and shutdown dbus methods still in core.
they are there but non-functional due to possibly being able to be
abused in a wayland universe to "dos attack" the wm.

@fix
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz d8878479ad only perform drm shutdown during signal handler if drm engine is in use 2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 58737e9db4 only create wayland screensaver timer in wayland mode
probably fix T2867
2015-12-04 16:00:37 -05:00
Chris Michael 97c488348c Fix invalid compositor type check in e_dpms_force_update
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-04 16:00:37 -05:00
Chris Michael 11a5f6be3f Fix formatting and remove extra blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-04 16:00:37 -05:00
Carsten Haitzler 9e83a7eb4a e - fix compositor fade out ghosting
due to enabling manual rendering (and als animator frametiem to 10
secons) in e_comp_canvas.c when screensaver is active (blanking is
finished totallly - eg the fade to black) evas weill nto render the
last frame of the animation - skipping it and not rendering another
update until screensaver is disabled. this leaves a subtle ghost of
pixel data which is 1 step before black on the screen (until dpms
turns the monitor off).

this fixes that. this delays enabling manual render for 1 more second
after we have been told the screensaver is active. this is plenty of
time to update all the way to black.

@fix
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 8532f7e1d6 ref clients while a wayland shell surface exists
in the case where a client is deleted, it's possible that the shell
surface may persist longer than the duration of the normal client delete
cycle, so it's necessary to ensure that the client will continue to exist
until the shell surface has been destroyed
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 90e0018c7e remove fwin popup size hint change callback on win deletion
this callback also crashes if called during delete
2015-12-04 16:00:37 -05:00
Mike Blumenkrantz 930dbc73ac ensure fwin efm delete callback does not trigger crash
if this is called during fwin delete, dereferencing the passed data
will result in a crash
2015-12-04 16:00:36 -05:00
Stafford Horne a817b1b5f4 e/core: Fix minor mem leak when reading module paths
Summary:
Found this with a quick valgrind session.  For paths that are not directories, if we fail the `ecore_file_is_dir` condition memory will not be freed.

The change is to use the default e_path freeing function.

Test Plan:
Run enlightenment in valgrind.  It should no longer show a mem leak like below.

```
==6912== 8 bytes in 1 blocks are definitely lost in loss record 186 of 5,940
==6912==    at 0x4C28C50: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6912==    by 0x4D8574: e_path_dir_list_get (e_path.c:326)
==6912==    by 0x4D1BA4: e_module_init.part.0 (e_module.c:183)
==6912==    by 0x4D1DA8: e_module_init (e_module.c:153)
==6912==    by 0x4371ED: main (e_main.c:868)
```

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3356
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 40f100b26c always set wayland E_Client->redirected during client creation
fix T2846
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 76d38b53da ensure that a deskmirror object does not orphan child objects
ref T2846, T2830
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 84e801185a Revert "e deskmirror - fix loss of mirror object from deskmirror"
This reverts commit bd0c590489.

the m->mirror object can never be deleted except in the case of a client
being removed from the owner desk. removing it at any point will break any
users of the deskmirror api and create other issues

ref T2846
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz c9ddd75705 block task gadget refills while a drag is active
it's impossible to use a pager effectively with a task gadget due to
the constant resizing of the tasks gadget during any kind of window move
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 3647c07cc5 always create compositor mirror objects, ignore pixmap image state
checking pixmap image state in this case resulted in mirrors failing to
be created in some cases when there was no reason to fail

ref T2846
2015-12-04 16:00:36 -05:00
Stafford Horne ee2cbf1c91 e/imc: fix issue with input method import segv and small window size
Summary:
The imc import dialog at "Settings > Language > Input Method Settings >
Import .." had issue where the size was almost zero.  When trying to
close the window it would SEGV.

The SEGV seems to be do the with dialog->cdata not being set.

The resize issue I am not so sure, but I upgraded to ELM and if fixed
the issue.

Test Plan:
Open "Settings > Language > Input Method Settings > Import ..."
 - The size should not be really small
 - When closing it should not cause E to SEGV
After applying the patch the above issues are fixed.

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3353
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 0ec94ff693 add safety checks to e_client_focus/raise_latest_set() fns
passing a null client here breaks the universe, so ensure that it's
easily catchable
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 27144e5148 further improve csd calculations for x11 clients
there was previously a frame in which maximized x11 csd clients would
reposition themselves offscreen before rendering

this is now fixed by adjusting the client geometries either upon
unsetting the csd or re-setting it, allowing the client to retain its
expected positioning without jitters
2015-12-04 16:00:36 -05:00
Carsten Haitzler c8a105bdba e mixer fix - fix default mixer to pulse if there
this makes e use the correct mixer backend if pulse is available as
opposed to using alsa going behind pulses back.

@fix
2015-12-04 16:00:36 -05:00
Kai Huuhko 2735d2af0c L10N: Update Finnish translations
Includes translations from Launchpad.
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 38ecec6d0b update E_Client->desk member upon focusing a sticky client
a sticky window previously would always have the desk set for where
it was set as sticky, meaning that anything which tries to access it
will be reading wrong data here.
more useful information to provide is the last desk which the sticky
client was focused on, so update that upon focusing it
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 2f2eff9691 do not refill all tasks bars when a sticky window changes desks 2015-12-04 16:00:36 -05:00
Mike Blumenkrantz b467800265 do not add new deskmirror clients on desk_set event if client already exists 2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 99d92b711c improve x11 client focusing with mouse-based focus policies on mouse move
in the case that a mouse move event occurs, the compositor should validate
the event to ensure that the mouse cursor is actually over the window that
the event claims to be from

fix T2594
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 8a399d8fd5 improve readability of E_FIRST_FRAME environment variable detection
functionality remains the same, but this is more clear for readers
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 756c4808cb install emixer icon to $(datadir)/pixmaps instead of /icons
fix T2834
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz 4c18316fba null efm icon eio handle in error callback
ref T2829
2015-12-04 16:00:36 -05:00
Mike Blumenkrantz ef7d5232f3 ensure that all mixer volumes resolve to the appropriate gadget icon
reported by Jef91 in #e
2015-12-04 16:00:36 -05:00