Commit Graph

17686 Commits

Author SHA1 Message Date
Stefan Schmidt 7ed2381722 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-11-26 18:10:47 +01:00
Stefan Schmidt 01a4a24f34 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-11-26 18:09:32 +01:00
Mike Blumenkrantz c05100ed14 re-swallow bg_object after wallpaper transition has completed
fixes eventing/stacking on bg object
2015-11-25 12:36:36 -05:00
Mike Blumenkrantz ac0cc26765 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-11-24 21:42:22 -05:00
Mike Blumenkrantz ea8e88b592 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-11-24 17:34:03 -05:00
Mike Blumenkrantz 60269f3ecf use CSD geometry during move/resize display
this should provide more user-relevant information
2015-11-24 17:31:47 -05:00
Mike Blumenkrantz e8f4f30f40 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-11-24 17:29:53 -05:00
Mike Blumenkrantz 0ed63ede7c 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-11-24 17:28:08 -05:00
Mike Blumenkrantz 913e04bda7 declare xwayland functions prior to using them
#CompileFail
2015-11-24 15:46:10 -05:00
Mike Blumenkrantz 70c6dc30d1 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-11-24 15:34:42 -05:00
Mike Blumenkrantz ef09d3e620 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-11-24 15:26:10 -05:00
Mike Blumenkrantz ba53e6937b fix all shadow warnings in msgbus module
ref cdb436ee86
2015-11-24 12:01:01 -05:00
Mike Blumenkrantz e01b594fbd reenable restart/shutdown dbus methods under x11 2015-11-24 11:49:15 -05:00
Carsten Haitzler 255d227ac8 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-11-24 22:07:53 +09:00
Carsten Haitzler cdb436ee86 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-11-24 22:07:46 +09:00
Mike Blumenkrantz 80071ab79e only perform drm shutdown during signal handler if drm engine is in use 2015-11-23 15:03:45 -05:00
Mike Blumenkrantz be69ae562f only create wayland screensaver timer in wayland mode
probably fix T2867
2015-11-23 14:47:37 -05:00
Chris Michael ebf1318b0d Fix invalid compositor type check in e_dpms_force_update
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-23 10:00:36 -05:00
Chris Michael eff826b4e3 Fix formatting and remove extra blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-23 09:48:58 -05:00
Carsten Haitzler 251daa7515 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-11-23 11:42:38 +09:00
Mike Blumenkrantz a3266d5d89 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-11-20 15:04:07 -05:00
Mike Blumenkrantz d659b86478 remove fwin popup size hint change callback on win deletion
this callback also crashes if called during delete
2015-11-20 09:16:21 -05:00
Mike Blumenkrantz b2706afe06 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-11-20 09:09:38 -05:00
Stafford Horne bbe3173906 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-11-19 20:44:45 -05:00
Mike Blumenkrantz d32392760a always set wayland E_Client->redirected during client creation
fix T2846
2015-11-19 15:58:52 -05:00
Mike Blumenkrantz 0988e21193 ensure that a deskmirror object does not orphan child objects
ref T2846, T2830
2015-11-19 15:52:01 -05:00
Mike Blumenkrantz 818531a13e 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-11-19 15:44:34 -05:00
Mike Blumenkrantz 90071799a8 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-11-19 15:34:19 -05:00
Mike Blumenkrantz 5e6831187a 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-11-19 15:17:19 -05:00
Stafford Horne 9bfd684e43 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-11-19 12:46:58 -05:00
Mike Blumenkrantz 00252fad74 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-11-19 12:44:35 -05:00
Mike Blumenkrantz 11c632ab44 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-11-16 16:25:34 -05:00
Carsten Haitzler e5f56f95e9 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-11-14 10:14:30 +09:00
Kai Huuhko a785df425c L10N: Update Finnish translations
Includes translations from Launchpad.
2015-11-14 02:36:01 +02:00
Mike Blumenkrantz 64ceff507f 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-11-12 17:38:58 -05:00
Mike Blumenkrantz 52866a300a do not refill all tasks bars when a sticky window changes desks 2015-11-12 17:34:42 -05:00
Mike Blumenkrantz 846ff6c068 do not add new deskmirror clients on desk_set event if client already exists 2015-11-12 17:31:27 -05:00
Mike Blumenkrantz f09e410285 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-11-12 17:17:38 -05:00
Mike Blumenkrantz 660c7cb2e5 improve readability of E_FIRST_FRAME environment variable detection
functionality remains the same, but this is more clear for readers
2015-11-12 15:09:29 -05:00
Mike Blumenkrantz e140ccb0d1 install emixer icon to $(datadir)/pixmaps instead of /icons
fix T2834
2015-11-12 12:42:13 -05:00
Mike Blumenkrantz c2e2769c3a null efm icon eio handle in error callback
ref T2829
2015-11-11 12:25:56 -05:00
Mike Blumenkrantz 3ad521ab9c ensure that all mixer volumes resolve to the appropriate gadget icon
reported by Jef91 in #e
2015-11-11 11:54:58 -05:00
Carsten Haitzler b018ac1abc e screens/zones/randr - store randr2 id in xinerama and zones for lookup
so e has a bit of a problem. we mostly deal with zones, BUt these
zones come from our old xinerama code (this likely should just die
some time) and THIS code gets fed info from e's randr code. we
re-fill/modify as randr finds new screens or things get reconfigured.
thus zones adapt. the problem is now all our zone code really has a
hard time reverse mapping the zone back to where it came from -eg the
randr screen data. you literally can't do a whole bunch of things like
know if that zone was an internal laptop lid or an external screen, or
if it was rotated or even what the dpi is... as you ave no deasy way
to map it back other than by guessing geometry matches.

this fixes that by storing the randr screen id (which should be
unique) fromt he original src randr screen in the xinerama screen and
then in the zone. with this you can do a quick lookup in the e randr
data should you ever need to find the info. this should pave the way
for some other fixes/improvements, but without this they cannot be done.

@fix
2015-11-11 21:22:30 +09:00
Mike Blumenkrantz b3d68ee828 use unsigned int for client focus tracking freeze state
there's no reason why this should ever be negative
2015-11-10 14:32:53 -05:00
Mike Blumenkrantz 33b1f3842c Revert "clamp client to ABOVE layer when ending nocomp"
This reverts commit 8c6bbe0d44.

This Breaks Everything™.
2015-11-10 13:34:02 -05:00
Mike Blumenkrantz 8c6bbe0d44 clamp client to ABOVE layer when ending nocomp
should fix case where an "Always on Top" window toggles fullscreen
2015-11-10 12:59:26 -05:00
Vivek Ellur dbfa9682bb Fix null dereference issue
Summary:
@Fix
possible null dereference issue while referencing cs2->id. So added a condition
to check it

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3309
2015-11-10 12:26:48 -05:00
Vivek Ellur 54a613eda9 Fix memory leak issue
Summary:
@Fix

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3307
2015-11-10 12:26:40 -05:00
Vivek Ellur f026fdf9b3 e: Fix realloc issue in e font module
Summary:
@Fix

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3306
2015-11-10 12:26:14 -05:00
Carsten Haitzler bd0c590489 e deskmirror - fix loss of mirror object from deskmirror
this fixes T2830

@fix
2015-11-10 19:06:57 +09:00
Carsten Haitzler 3195b760ee ibar - fix shutdown if ibar client menu is up
valgrind pointed out a referencing issue with the ibar client menu on
hover and if e is shut down while this is up. it ends up referencing
an already deleted ibar icon, so delete the menu objects that
reference the icon if icon is deleted.

@fix
2015-11-10 19:06:57 +09:00
Mike Blumenkrantz 551657e02a check client comp data existence in x11 mirror visibility callbacks 2015-11-09 14:29:23 -05:00
Mike Blumenkrantz 945f9506cf enforce fullscreen client stacking during nocomp end IFF client is fullscreen
previous behavior would result in the nocomp window becoming stuck at a fullscreen
layer when ending nocomp, even if the client was no longer fullscreen

fix T2827
2015-11-09 13:20:50 -05:00
Mike Blumenkrantz 9ffef78188 disable client menu stacking functions for unstackable windows
any client stacked higher than E_LAYER_CLIENT_ABOVE should never be
user-stacked
2015-11-09 13:11:26 -05:00
Stafford Horne fe4cd15782 e/desk_wallpaper: Fix setting wallpaper from within Virtual Desk dialog
Summary:
It seems this was missed when doing the manager/container id removal
back in march.  The param validation was failing and causing the "Set"
button to not work in "Screen > Virtual Desktops > Click to Change
wallpaper".

Test Plan:
1. Open "Screen > Virtual Desktops > Click to Change wallpaper"
2. Click "Set"
  - Expect that a wallpaper dialog be shown
  - Before this patch nothing happens

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3298
2015-11-07 22:52:21 -05:00
Mike Blumenkrantz b753b1bab4 Revert "force a software render in all cases when finalizing x11 client iconify"
This reverts commit 1a87463083.

no longer necessary
2015-11-07 13:12:14 -05:00
Mike Blumenkrantz bf2e36236c toggle x11 client iconic/mapped state based on mirror visibility
in order to continue rendering an iconic client without breaking icccm,
it's necessary to map the client's window again and unset iconic state
whenever rendering is needed, then re-set states when rendering
stops

ref T2788
2015-11-07 13:10:02 -05:00
Mike Blumenkrantz 18fba8e5d7 add e_comp_object_mirror_visibility_check()
can be used to check whether visible mirrors exist for a comp object
2015-11-07 13:09:23 -05:00
Mike Blumenkrantz 50e4a30126 add counter and smart callbacks for comp object visible mirrors
ref T2788
2015-11-07 13:08:12 -05:00
Mike Blumenkrantz d4614e1aad emit ibox icon signals to the internal edje object of the e_icon 2015-11-07 13:07:07 -05:00
Mike Blumenkrantz cc137f6cd7 move client iconic hint setting into x11 hide function
e_hints should probably be merged into the x11 compositor entirely
at some point
2015-11-07 13:06:23 -05:00
Mike Blumenkrantz f0cc657e4c break out x11 client visibility setting into util functions 2015-11-07 13:05:18 -05:00
Mike Blumenkrantz 4250a14861 set e_comp->gl for wayland compositors based on gl display bind success 2015-11-07 12:23:04 -05:00
Stafford Horne 7bedc8eea6 e/ilist: Fix issue with multiselect returning wrong index
Summary:
I noticed this because the description dialog in "Apps > Startup Application"
was never getting properly populated.

Test Plan:
When selecting items in the "Apps > Startup Applications" config the
description should update if a "Comment" field is available in the
.desktop file.

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3297
2015-11-07 12:11:53 -05:00
Stafford Horne 0f2f21f201 e/conf_apps: Fix resizing of "Startup Application" dialog
Summary:
Currently the config dialog in Apps > Startup Applications does not properly
resized as one of the objects is not set to horizontal fill.

Test Plan: 1. Resize "Apps > Startup Applications", it should resize the list with the window

Reviewers: zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3296
2015-11-07 12:11:49 -05:00
Mike Blumenkrantz 76276a6c7c adjust efm multi-icon drag positioning by the current pan coords
fixes positioning when dragging multiple icons after scrolling
2015-11-05 15:31:16 -05:00
Mike Blumenkrantz f343a5403d account for window position in efm window drag initial positioning
fix T2819
2015-11-05 15:31:16 -05:00
shorne 5f3278eba8 e/win_config: allow content of some dialogs to resize with the window
Summary:
Currently the dialogs in Winows > Window List Menu and Window Display are
resizable the their content does not resize.  This patch fixes that.

Test Plan: Open windows in window config dialog and ensure they can resize propertly

Reviewers: zmike

Subscribers: raster, cedric, seoz

Differential Revision: https://phab.enlightenment.org/D3275
2015-11-05 16:03:26 +09:00
Mike Blumenkrantz fc01d6a24c check for wayland egl extensions before starting a gl compositor
when running in software mode, evasgl performs no checking to determine
whether gl is available, leading to a crash due to missing extensions
2015-11-04 12:23:05 -05:00
Nicolas Aguirre a8bf439f88 Revert "Adds eglfs to Enlightenment"
This reverts commit ff1e7b5083.
2015-11-03 08:01:58 +01:00
Nicolas Aguirre fe60c4fecd Revert "e_signals.c: Inclues Ecore_DRM only if WL_DRM is built and not only if WAYLAND is built"
This reverts commit 96e304bc90.
2015-11-03 08:01:42 +01:00
Nicolas Aguirre 56c3dde5e6 Revert "wl_eglfs: enable gl acceleration, mouse, touchscreen and keyboard"
This reverts commit c99d46ae66.
2015-11-03 08:01:35 +01:00
Nicolas Aguirre 31ce65a2c4 Revert "Don't load xwayland if it isn't compiled"
This reverts commit 496ae3746f.
2015-11-03 07:57:56 +01:00
Florent Revest 496ae3746f Don't load xwayland if it isn't compiled 2015-11-03 07:50:21 +01:00
Florent Revest c99d46ae66 wl_eglfs: enable gl acceleration, mouse, touchscreen and keyboard 2015-11-03 07:37:41 +01:00
Florent Revest 96e304bc90 e_signals.c: Inclues Ecore_DRM only if WL_DRM is built and not only if WAYLAND is built 2015-11-03 07:37:41 +01:00
Florent Revest ff1e7b5083 Adds eglfs to Enlightenment 2015-11-03 07:37:41 +01:00
Mike Blumenkrantz ae6416c27c add wayland egl client support
definitely not a feature, I promise™
2015-11-02 16:25:02 -05:00
Mike Blumenkrantz 35d0279d4f use e_comp->gl flag to set native surface state
e_comp_gl_get() is for determining if gl exists, not if it's being used
2015-11-02 16:25:02 -05:00
Mike Blumenkrantz e7d534ad80 fix comp object native surface config checking for non-x11 compositors 2015-11-02 16:25:02 -05:00
Mike Blumenkrantz b45e16ee23 add native surface (gl) clients to post render list
forgot to add this when I was redoing it for sw

ref 4d30674ab8
2015-11-02 16:24:53 -05:00
Mike Blumenkrantz cea91b111c Revert "queue pending buffers for wayland shm clients"
This reverts commit 1ee825d29c.

this was fixing the wrong problem and was not functioning accurately
in any case
2015-11-02 14:53:15 -05:00
Carsten Haitzler f40e664ec5 e exec tracker - fix tracking to update desktop files on efreet change
efreet will send change events meaning out desktop file icons are
invalid now. we have refs but content is junk. update these to new
desktop ptr handles by using the exec key to look up new ones on the
change event. this fixes ibar gainign a bunch of blank unknown icons
when any desktop files are touched on the system or user dirs

@fix
2015-11-02 12:28:27 +09:00
Mike Blumenkrantz d47252be4a simplify client SMART/EXPAND maximize
calling e_client_resize_limit() here was misleading since the values
were never used
2015-10-30 15:03:29 -04:00
Mike Blumenkrantz 21017889b2 adjust non-x11 client's saved frame geometry when changing csd
this seems to be a more comprehensive solution for retaining previous
window sizes after toggling various csd-affecting window states in wayland
2015-10-29 14:35:02 -04:00
Mike Blumenkrantz b9e51e1c0d Revert "when maximizing a wayland client with csd, use window geometry"
This reverts commit 6e5e51c2b8.

not a complete solution, makes client code somewhat unreadable
2015-10-29 14:34:32 -04:00
Mike Blumenkrantz 5469c3b680 add E_COMP_ENGINE env var to determine sw/gl
accepted values are 1, 2, sw, gl

toggling config options is a hassle when debugging
2015-10-28 12:55:09 -04:00
Mike Blumenkrantz 1f42932ede clean up some systray leaks 2015-10-26 13:11:32 -04:00
Mike Blumenkrantz 29a1fe0265 always unalias x11 client parent window <-> pixmap relation during delete
deleted state is not relevant, this should always be removed during deletion
to prevent further referencing of a deleted client

fix T2803
2015-10-26 13:02:34 -04:00
Flavio Ceolin a524d165bc modules:mixer: Avoid pa backend from crash
Check the pulseaudio's context error and if info is not null before
get server's information.
2015-10-24 19:10:40 -02:00
Carsten Haitzler 7fb597a8ab e - ibar - fix clash when 2 icons of the same path get added somehow
i encontered a situation where the icon_hash contained a garbage entry
- had been freed already. the only way i can see this happening is if
the desktop file changed path during runtime thus the icon was never
removed from hash on free as string didnt match. store string used
when adding to hash so removal is guarannteed to work and also for
good measure protect against double-adding (and generate a new string
for storage using timestamp which should be unique).

so this fixes a crash i was just looping on.

@fix
2015-10-24 11:01:56 +09:00
Mike Blumenkrantz 6e5e51c2b8 when maximizing a wayland client with csd, use window geometry
wayland clients which have csd must be resized according to window geometry,
not client (surface) geometry. this is somewhat tricky to handle because x11
clients which have csd work the exact opposite way and must continue to be
managed using client geometry

this is not my ideal solution for this issue, but I can't think of a
better one at this time which fully fixes wayland client maximization
2015-10-23 12:59:45 -04:00
Mike Blumenkrantz 7016c59c6f reject frame theme changes for clients which have CSD 2015-10-23 12:31:24 -04:00
Mike Blumenkrantz 98f418afa9 only apply frame geometry deltas for CSD if the CSD region exists
ref e931e86161
2015-10-22 19:25:07 -04:00
Mike Blumenkrantz 6692cefaf5 set client input rects more accurately, accounting for SSD 2015-10-22 19:24:11 -04:00
Mike Blumenkrantz 6f455ac9c3 enforce cw->obj pass_events state more accurately
changing the edje file of cw->shobj can change the pass_events state
of its child object, cw->obj
2015-10-22 19:22:48 -04:00
Mike Blumenkrantz 633c72f6af clip client input rect to client geometry, not window geometry
when using csd, the window geometry will be smaller than the surface,
resulting in an unusually small input region
2015-10-22 18:44:51 -04:00
Mike Blumenkrantz 14a9318ff9 defer all module error dialogs
due to the (current) synchronous creation of wayland surfaces in efl,
creating these dialogs during startup will result in a crash. the only
way to prevent this and still display the dialogs is to wait a bit and
show the dialogs after init has completed
2015-10-22 14:14:20 -04:00
Mike Blumenkrantz 18484e7eee completely remove access module
as promised almost a year ago, this module has been unmaintained to
the point where it cannot function in any way, and attempting to keep
it in the tree is a futile effort

this module can now be found at devs/discomfitor/e_module-access.git

ref 77717523f3
2015-10-22 13:52:31 -04:00
Mike Blumenkrantz d3f229d450 remove dead modules from whitelist 2015-10-22 13:18:14 -04:00
Mike Blumenkrantz 9bf2438ba9 unconditionally show opengl option in compositor settings
enlightenment is not always running in x11, so making this option
dependent on xlib will break other environments
2015-10-22 12:49:51 -04:00
Mike Blumenkrantz 6eefae4822 add hacks to work around pulseaudio+xwayland integration deadlocks
enlightenment is (I think) the first wayland compositor to run with
in-process pulseaudio integration for audio playback and not just mixer
support. hooray.

this results in a fun issue: if DISPLAY is set, as it must be for x11
clients to function, pulseaudio will unconditionally attempt to use a
blocking socket connection to create a connection to the running xserver.
the only exception here is if x11 support has been compiled out of pulseaudio,
but probably no distro will do that ever.

so, what happens when the compositor thread tries to create a socket connection
to the xserver that the compositor thread has not yet started? absolutely nothing.
forever.

the easiest solution which continues to provide the key press sounds that everyone
loves is to ensure that the pulseaudio connection is created before DISPLAY is ever
set, namely in the xwayland module init.

this will now occur automatically now in the case when the mixer module detects
pulseaudio support.

TL;DR: don't disable mixer module if you use xwayland
2015-10-21 17:19:52 -04:00
Mike Blumenkrantz e38051bae0 make comp config unresizable...again
ref 5178197f60
2015-10-21 15:17:25 -04:00
Mike Blumenkrantz 07b778a396 do not use ecore-x functions in scale config while running in wayland 2015-10-21 14:20:24 -04:00
Mike Blumenkrantz 28b022d033 append new keyboard resources for wayland focused-client to the focused list
fixes all cases where applications would fail to receive focus initially
and then be permanently broken
2015-10-21 14:06:31 -04:00
Mike Blumenkrantz a832bb8ded fix typo in wayland keyboard resource unbind list management 2015-10-21 14:06:31 -04:00
Mike Blumenkrantz 6451a65754 do not use x11 input windows for grab dialogs when running in wayland 2015-10-21 14:06:31 -04:00
Chris Michael 7b79e03937 Fix e_menu trying to swallow an object from a different canvas
_e_menu_realize was trying to swallow the menu->container_object into
the menu->bg_object, but the menu->bg_object was being created on the
compositor canvas, and the container object was being created on the
e_comp->elm_win.

With recent EFL changes, this causes an abort inside Evas.

To fix this, set the menu->evas to be the Evas from the e_comp->elm_win.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-21 10:26:18 -04:00
Mike Blumenkrantz e931e86161 update csd using deltas of previous values
when applying new csd to a window which already has csd, the previous
csd must be removed in order to apply any new csd offsets in order to
avoid unwanted moving/resizing
2015-10-20 12:20:24 -04:00
Seunghun Lee b44d4ad339 e-comp-wl-input: don't leak the initial keymap.
Summary: remove xkb_map_ref() for keymap in _e_comp_wl_input_keymap_update().

Test Plan: N/A

Reviewers: devilhorns, zmike

Subscribers: ManMower, cedric

Differential Revision: https://phab.enlightenment.org/D3173
2015-10-19 11:43:07 -04:00
Thierry b9e793053d mouse_config: fix accel threshold and numerator limits.
man xset =>  If the `threshold' parameter is provided and 0, the
`acceleration' parameter will be used in the exponent of a more
natural and continuous formula, giving precise control for slow motion
but big reach for fast motion, and a progressive transition for motions
in between.  Recommended `acceleration' value in this case is 3/2 to 3,
but not limited to that range.
2015-10-16 13:29:19 -07:00
Mike Blumenkrantz 1ee825d29c queue pending buffers for wayland shm clients
due to how deferred rendering works, it's possible for a client to
send a second buffer before enlightenment has rendered the first one.
in this situation, it seems that the best solution is to queue successive
buffers (frames) and pop the queue after each render

ref T2784
2015-10-16 15:48:46 -04:00
Mike Blumenkrantz 1a87463083 force a software render in all cases when finalizing x11 client iconify
since ICCCM requires that clients be unmapped while iconified, it's necessary
for the compositor to perform one last render prior to the unmap in order to
ensure that mirror objects will still appear as expected. this render must use
the pixmap buffer data in order to avoid timing issues due to async/deferred
rendering, and it is only necessary for the case of clients rendering with a
native surface

fix T2788
2015-10-15 15:39:07 -04:00
Mike Blumenkrantz 06f794bfe6 clear x11 client pixmap when returning from iconic
ensure pixmap remains usable during the entire hide process
2015-10-15 15:32:38 -04:00
Mike Blumenkrantz dc872be2df check systray dbus name existence before attempting to recover session
in the case that a system error occurs the dbus method for returning the
session name can fail, leading to a null return

CID 1327399
2015-10-15 13:13:22 -04:00
Mike Blumenkrantz 56ff9ead03 use dbus unique name for tracking systray sessions
the env var DBUS_SESSION_BUS_ADDRESS may not be set for all platforms
where enlightenment+dbus are usable, so it's necessary to get the dbus
id to ensure that this value exists and is properly tracked
2015-10-15 13:13:22 -04:00
Mike Blumenkrantz f6245e5535 reject deleted clients from x11 sync alarm event callback
E_Client->comp_data is null after a client has been deleted, so
attempting to handle events which require the dereferencing of this
pointer after a client has been deleted will result in a crash

these events should be rejected after delete regardless, since at this
time the compositor has stopped handling events for the client

ref f42c6aa187
2015-10-15 13:13:18 -04:00
Carsten Haitzler f42c6aa187 e - comps sync - ec client was null - i think, so protect against crash
i got a crash here and the bt was broken and i couldnt check if
_e_comp_x_client_data_get() returned null, but it's the only thing
that would make sense, so protect against this to avoid a crash. as
this was a one-off, i can't find out more,

@fix
2015-10-15 19:29:14 +09:00
Marcel Hollerbach adbb5719f0 systray: search for the best available resolution of a icon
For example in telegram the first icon which was transmitted was in a
pretty bad resolution, the new code searches the best res.
2015-10-14 22:40:47 +02:00
Mike Blumenkrantz 432d1e3776 cache systray items for each dbus session
the current spec does not directly require any behavior from clients
when a systray host, leading to an issue where clients do not re-register
their items when a new host appears

when using an in-process systray watcher, as the current implementation does,
the best choice for maintaining consistency for systray items across restarts
is to cache them according to the current dbus session. the process of setting
up the item will validate it on subsequent restarts, and changes to the session
will clear the cache

fix T2786
2015-10-14 16:30:41 -04:00
Amitesh Singh 71f7720669 e_flowlayout: typecast return value to int
Summary:
return value is small enough, so there is no risk in casting from unsigned int to signed int.

CID: 1267211

Reviewers: devilhorns, raster, cedric, zmike

Subscribers: seoz, sachin.dev

Differential Revision: https://phab.enlightenment.org/D3179
2015-10-14 14:02:07 -04:00
Mike Blumenkrantz 984d664eef trap shaped x11 clients and prevent compositor blocking with high rect count
in the case where a shaped window with many rects exists, there is a high
probability of the damage rect count being huge, leading to massive blocking for
each frame as the compositor attempts to fetch all of these rects from the xserver.

instead, the compositor can shortcut this by forcing a full-window damage any time
the rect count is sufficiently high, trading a blocking socket operation for some
amount of (potential) overdraw.

testing in affected scenarios has shown huge improvements: where previously the entire
compositor would lock up, things work as expected now

see https://bugzilla.mozilla.org/show_bug.cgi?id=1214746 for a sample case
2015-10-14 12:59:14 -04:00
Mike Blumenkrantz 00895ca014 do not return when x11 damage event returns no rects
ensure first_damage flag is set in all cases
2015-10-14 12:59:14 -04:00
Amitesh Singh de740b2520 pulseaudio: pass big data as pass by reference
CID: 1308394
2015-10-14 21:51:00 +05:30
Chris Michael d74273f732 enlightenment: Make sure we have a zone before calling
_bgpreview_viewport_update

@fix CID1324753

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:59:31 -04:00
Chris Michael 2cd6fcc3a9 enlightenment: Use 'fabs' to compute absolute value of floating point
types

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:38:14 -04:00
Chris Michael e856f7acbb enlightenment: #if 0 out an unused variable
NB: The function which actually uses this variable is also #if 0'd out

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:30:33 -04:00
Chris Michael d72af795ad enlightenment: Use 'fabs' to get absolute value of floating point types
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:28:38 -04:00
Chris Michael 2814066c39 enlightenment: Fix E_CONFIG_LIMIT to use the proper min & max values
e_config->backlight.idle_dim is actually an unsigned char in the
structure, so use a 0 & 1 for min & max

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:22:19 -04:00
Chris Michael 59ffe3bed2 enlightenment: Add missing field initializers for Eina_Rectangle
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:19:43 -04:00
Chris Michael a6661a2066 enlightenment: Add missing field initializers for Evas_Point
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:18:04 -04:00
Chris Michael 4acd72c64a enlightenment: Add missing EINA_UNUSED for unused function paramaters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:17:22 -04:00
Chris Michael fbc9b89d59 enlightenment: Add missing EINA_UNUSED for unused function parameters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:16:25 -04:00
Chris Michael dc4eb9ca0d enlightenment: Add missing EINA_UNUSED for unused function paramaters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-14 10:14:16 -04:00
Mike Blumenkrantz 98c44950b1 subtract x11 client damage region even when forcing full override damage
fix T2785
2015-10-13 22:38:50 -04:00
Mike Blumenkrantz f6be761226 force full damage for first frame of x11 override clients
it seems that damages for popup windows in some applications,
namely blink-based browsers, are reported incorrectly, resulting
in sometimes having a blank window
2015-10-13 17:09:00 -04:00
Marcel Hollerbach 8c77c613a1 Fix make distcheck 2015-10-13 22:06:00 +02:00
Marcel Hollerbach 2fd6f95a9b mixer: start app from bin directory
before the app was installed into the modules directory, now its
installed to the bin directory
2015-10-13 22:06:00 +02:00
Marcel Hollerbach 03888cf941 mixer: install icon and .desktop file 2015-10-13 22:06:00 +02:00
Marcel Hollerbach 57ec517904 mixer: install app to bin directory 2015-10-13 22:06:00 +02:00
Mike Blumenkrantz e8bcf1016f use correct param ordering for setting wayland client frame geometry
function uses l,r,t,b and not x,y,xx,yy

fix T2624
2015-10-13 13:31:47 -04:00
Mike Blumenkrantz 60a1dfaf4f remove duplicate surface size update for wayland clients during commit
this has already happened in e_comp_wl_surface_attach()
2015-10-13 13:25:15 -04:00
Tomáš Čech 10053f5d64 don't forget wl_desktop_shell's header in tarball
Summary: Merge branch 'master' of git://git.enlightenment.org/core/enlightenment

Reviewers: zmike

Subscribers: cedric

Maniphest Tasks: T2776

Differential Revision: https://phab.enlightenment.org/D3170
2015-10-12 11:56:45 -04:00
Carsten Haitzler 9c5b6acb05 e mixer - be more robust if pulse exits/crashes and def sink is null
ensure there are protections everywhere for when default sink is null
- mixer did crash when pulse crashed and a popup was to be shown...
2015-10-10 11:07:24 +09:00
Mike Blumenkrantz 45b7224b42 explicitly disable screensaver for wayland urgency wakeups 2015-10-09 15:23:15 -04:00
Mike Blumenkrantz 277eb14ace make wake-on-urgent apply for all cases of window urgency
in the case that an urgent window is set as urgent again, wakeup should
still occur
2015-10-09 15:21:41 -04:00
Mike Blumenkrantz ddc06559c7 apply _GTK_FRAME_EXTENTS for xwayland clients
not entirely sure this is worthwhile but may as well
2015-10-09 15:03:38 -04:00
Tom Hacohen 252198488c Intl: fix potential stack buffer overflow.
CID 1298051

@fix
2015-10-09 09:26:45 +01:00
Tom Hacohen 981e3f8f31 Client: fix potential out of bounds read.
This is an unsigned int underflow that could lead to an out
of bounds read.

CID 1291837

@fix
2015-10-09 09:19:53 +01:00
Mike Blumenkrantz 2ab7fed323 don't crash desktop gadget systrays when adjusting image sizing
desktop gadgets (gadman) do not have a shelf, so derefing that pointer
without checking will guarantee a crash
2015-10-08 12:23:07 -04:00