Commit Graph

9611 Commits

Author SHA1 Message Date
Sebastian Dransfeld 399fd22c36 randr: cleanup try 2
This does not change any behaviour, just moves code:

1. We only try to locate a crtc for an output in _e_randr_output_active_set

And we only do this when we set active.

2. We only search for a crtc in _e_randr_output_crtc_find

This includes looping known crtcs without querying X if it matches.

Please don't revert, but help cleaning. As the current code does not
work for me...
2014-12-17 08:49:40 +01:00
Carsten Haitzler 43f1dc012d Revert "Randr: Fix null dereference."
This reverts commit 4aef218d28.

Revert "randr: remember crtcid for fast lookup on reconnect"
This reverts commit 55b4ad41d1.

Revert "randr: further cleanup"
This reverts commit 3e02824663.

these make nvidia randr resolution changing work again. sorry seb.
even though cleanups might be nice... this code is FIDDLY and every
driver seems to work differently, so take it easy and be very careful
- make no assumptions. i know it works on my intel desktop and nvidia
deskop atm. once i get a vga cable i'll fix up intel laptop with
external display that has problems. i can try radeon too later. but
right now - this stuff needs to work. being clean is far less
important than working. :)
2014-12-17 09:40:41 +09:00
Carsten Haitzler 9677b71902 Revert "randr: Don't track active outputs"
This reverts commit 01f43e3618.

this broke nvidia randr - i cant tunr my screens on or off anymore.
2014-12-17 09:12:32 +09:00
Tom Hacohen 4aef218d28 Randr: Fix null dereference.
CID1181926
2014-12-16 14:56:10 +00:00
Sebastian Dransfeld 01f43e3618 randr: Don't track active outputs
Remove tracking of active outputs to reduce code complexity.
2014-12-16 10:13:55 +01:00
Sebastian Dransfeld d265a1b289 randr: TODO++ 2014-12-16 09:56:02 +01:00
Sebastian Dransfeld 55b4ad41d1 randr: remember crtcid for fast lookup on reconnect
When an output is set inactive, it is disconnected from a crtc. Now we
remember the id of the last crtc it was connected to, so we get a faster
lookup on reconnect.
2014-12-16 09:21:02 +01:00
Carsten Haitzler 5180b69e33 e randr - restore edp checks
the dp checks were looking for edp stuff. but due to naming they appeard as
eDP or maybe edp or EDP - thus were simplified to dp. put more explicit
checks there.
2014-12-16 11:31:00 +09:00
Sebastian Dransfeld 074779b460 randr: Don't match DP as LID
On my intel laptop DP are my DisplayPort connections, not LID.
2014-12-15 12:52:25 +01:00
Sebastian Dransfeld 3e02824663 randr: further cleanup
Primarly two things removed:
1. crtc->outputs should only contain outputs which should be enabled
So looping them twice in e_randr_apply is definitly wrong.

2. _e_randr_crtc_find should find a crtc for an output
So looping our crtcs again in _active_set is definitly wrong. If
_e_randr_crtc_find does not find us a crtc, it should be fixed there.
2014-12-15 12:31:14 +01:00
Carsten Haitzler 95b4f14098 e randr - make it work on nvidia - lots of "wrong" things fixed
i've spent a while testing randr on my nvidia box and drviers. it now
works - i can turn screens on and off. i couldn't before. e_randr was
trying to be too smart for its own good. it wasnt matching up outputs
to crtcs, was thinking outputs active when they were not, etc. etc.
etc. - reality is e_randr could do witha  lot of simplification, but
at this stage i'm just going to hammer it into shape to work across as
many drivers and setups as i can test against.
2014-12-15 07:43:25 +09:00
Mike Blumenkrantz f3f3cedd03 only use elm win title for internal windows if it has been set 2014-12-14 15:40:25 -05:00
Marcel Hollerbach ec64288d4f e_win: Fix Dialog Titles
We should not set the title to "E" in the trap function of show.
If we do this we will override the icccm title and the netwm name, this
mean e_comp_x will set E as title of the window if the call to
elm_win_title_set was BEFORE the window was shown.

Now the name which was set before will be inserted.
2014-12-14 12:21:16 +01:00
Marcel Hollerbach a6f7d9ac1e Register the new window into out evas.
Summary:
Otherwise the mouse up event is emitted to the evas but the evas does
not work with it, because it does not know the window it is from. This
leads to a evas_event_down_count_get bigger than 1 which leads to a
missing mouse_out event. With this missing mouse_out event _post_up_handle
in evas_event.c is not called anymore, this means all the click events
are getting emitted to the object which was last clicked.

This fixes T1894.

Test Plan: Drag and Drop a icon somewhere and click somewhere after that, the evas will not get stuck anymore

Reviewers: raster

Subscribers: cedric, abyomi0, zmike, raster

Maniphest Tasks: T1894

Differential Revision: https://phab.enlightenment.org/D1771
2014-12-13 09:17:21 +01:00
Mike Blumenkrantz 066bdba3fa apply client size based on correct remember value, only apply if value != 0
ref T999
2014-12-08 17:06:13 -05:00
Mike Blumenkrantz 9bb38950bb remembering size on a window should also remember maximize state 2014-12-08 17:05:58 -05:00
Mike Blumenkrantz ac7bf5fe32 greatly reduce FAILURE_MAX
ref T1820
2014-12-08 17:03:23 -05:00
Mike Blumenkrantz 28d6eecceb reduce shape recalc for clients which cannot currently receive input 2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 610c439abd redo shaped client checks to use shape flags instead of rect pointer, fix shapeless clients
according to the shape extension protocol, the number of rectangles returned should be checked to determine a client's shape. if 0 is returned, the client has no shape, meaning that it either should not be drawn or should have no input region. this improves behavior with various client window types such as tooltips

ref T1820
2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 634b58773a add failure count for client rendering, drop clients after FAILURE_MAX tries
this traps clients which are showing and hiding themselves extremely quickly and prevents them from crashing us when we try to draw them

fix T1820
2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 38f30c83af fix X crash when trying to apply desktop window profile to client without desk 2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 3e50ac6e27 ensure clients are visible before triggering shape/render queue 2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 5753b7a2dd attempt to run eeze_scanner on failure to connect, not successful connect
ref T1612
2014-12-05 13:55:29 -05:00
Mike Blumenkrantz a9806056fc only attempt to start eeze_scanner a couple times before giving up
ref T1612
2014-12-05 13:55:29 -05:00
Mike Blumenkrantz eacfb2a98e store eeze_scanner connection poller to avoid creating an infinite number
ref T1612
2014-12-05 13:55:29 -05:00
Mike Blumenkrantz 5023d7eaa6 don't exit e_fm when eeze init fails, send RASTER mode instead 2014-12-05 13:55:29 -05:00
Mike Blumenkrantz 671a0d3b99 print more descriptive error messages when scanner connection fails, also don't exit() here
ref T1612
2014-12-05 13:55:28 -05:00
Stefan Schmidt 9336d7c372 e_start_main: Close fd only if we actually succeeded opening it.
In the error case fd would be -1 here. Closing needs to be handled in the
cases where fd != -1.

CID: 1256492
2014-12-02 10:50:27 +01:00
Chris Michael c7386d61c9 e-start: Fix 'control reaches end of non-void function'
Summary: Seems one of the Daniels did not check their compiler output
;) _e_ptrace_attach function should return an integer value...

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 11:55:32 -05:00
Daniel Kolesa ef82c30bb4 fix indentation 2014-12-01 16:30:57 +00:00
Daniel Kolesa 715d7f00b4 remove unused variable 2014-12-01 16:28:46 +00:00
Daniel Kolesa f918476da1 e_start_main: refactor (reduce scope depth, separate ifdefs, cleanup)
The main reason for this change is to clean it up for proper non-Linux
platform support, but also to make it cleaner in general.
2014-12-01 16:25:58 +00:00
Mike Blumenkrantz 6be71a64f9 fix efm dnd crash
fix T1880
2014-11-29 12:22:25 -05:00
Carsten Haitzler 48023b9ce3 e randr - fix warning (signed vs unsigned cmp) 2014-11-29 16:44:41 +09:00
Carsten Haitzler 70753a7903 e - randr - stop saving config using XID - this is utterly WRONG
so e was storing randr config using XIDs to match outputs etc. this is
all kinds of wrong. XIDs are NOT STATIC. they change from xserver to
xserver and from run to run. they MAY be the same. they may not. so
this was just broken.

use output name + edid as a big "string" (name.edid) as a way ofr
identifying config for a specific combination of output plus monitor
and to find/identify the corrent output+monitor to apply it to (of
course missing edid gets replaced with ??? and missing output name is
??? too - i have never seen a missing output name so you get this at
least).

so this FIXES "restore" of screen mode on login for starters. this
does nothing to "fix" the screen setup dialog in any way. there are
separate issues there.

this also breaks e_randr config compat so i bumped epoch so your old
config is rejected. i don't see a sensible way of porting the config
forward.
2014-11-29 10:05:36 +09:00
Mike Blumenkrantz f4b8e9563c apply pointer warp effects immediately when instant warping
fix T1462
2014-11-28 15:06:47 -05:00
Daniel Kolesa 245d26c7c7 detab e_start_main.c; spank spank spank 2014-11-28 15:08:24 +00:00
Daniel Kolesa db49bda75d clean up E ptrace detection and usage 2014-11-28 15:08:00 +00:00
Mike Blumenkrantz 68e0b75929 set skip pager/taskbar hints on parent window instead of client window
this is a change in behavior as compared to E17-E18 where any setting of related flags would alter the client hints

ref T1692
2014-11-25 15:02:06 -05:00
Marcel Hollerbach d0d0554170 e_order: Added a function to check if this Efreet entry allready exists
Checks if this Efreet_Desktop entry allready exists in the given
E_Order.
2014-11-25 16:18:06 +01:00
Carsten Haitzler 077474adcb e - warning fix - fix SVID_SOURCE complaint warning
reduces useless warnings so we see the real issues, not noise
2014-11-25 17:24:19 +09:00
Chris Michael 93a125b7a2 e-comp-wl: Don't try to set null data if we don't have a surface
Summary: This fixes an issue where calling wl_resource_set_user_data
with an invalid resource would cause an abort in the wayland
libraries, Thus making E crash.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-24 16:01:27 -05:00
Carsten Haitzler 87baecb098 Revert "windows - allow close button to work again in internal wins"
This reverts commit 285951c8cb.
2014-11-23 13:54:14 +09:00
Mike Blumenkrantz a16206c6f1 only show comp obj during internal win show if win not already visible
fix T1863
2014-11-22 12:47:19 -05:00
Mike Blumenkrantz ce49f2a1f0 only change internal win visibility on comp obj show if win not already visible 2014-11-22 12:46:50 -05:00
Mike Blumenkrantz de792341fb don't call elm_shutdown() for now
force iterating the main loop when it's expected to have stopped guarantees crashes for most of e
2014-11-22 08:33:48 -05:00
Mike Blumenkrantz 034c05bc0d remove unnecessary unfocused signal emit on clients 2014-11-22 08:31:59 -05:00
Carsten Haitzler 285951c8cb windows - allow close button to work again in internal wins
since the move to elm_win ... windows don't close with close button in
the titlebar. this fixes that in the simplest way - enabling autodel
on the window.
2014-11-22 18:46:10 +09:00
q66 d12ef91687 rename WEIGHT/ALIGN/EXPAND/FILL to E_WEIGHT/E_ALIGN/E_EXPAND/E_FILL
Otherwise there were macro clashes with a systemwide include.
Also remove a leftover E_Hal.h include.
2014-11-21 20:10:46 +00:00
Mike Blumenkrantz a4b1d63fea fix internal window closing with frame button 2014-11-21 13:34:32 -05:00
Mike Blumenkrantz eaa471b418 resolve recent coverity complaints 2014-11-21 10:21:13 -05:00
Daniel Kolesa bd95c310ec remove obsolete E_Hal.h include 2014-11-21 14:34:48 +00: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 a44b172607 minor tweaks to prevent harmless invalid reads during restarts with windows open 2014-11-20 15:26:22 -05:00
Mike Blumenkrantz 462c2ef4aa rename elm win trap functions for easier namespace debugging 2014-11-20 15:26:22 -05:00
Mike Blumenkrantz ffa98586a4 add macro wrapper to force elm win accel disabling on internal windows 2014-11-20 15:26:21 -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
Sebastian Dransfeld 23ade9f630 randr: fix formatting
tab to spaces
2014-11-19 11:58:50 +01:00
Marcel Hollerbach c2f596a06a Fix wrong deskshow function
Summary:
The loop E_CLIENT_REVERSE_FOREACH was used to iconify and uniconify the
icons. The worked well for uninconify.

But if the first client with the focus gets iconifyed the lower one in
the stack will get the focus and will be raised to the top, but the loop
will continue with the next of the now iconifyed e_client, so this one
will be skipped.

Now the forward loop is used to iconify and the reverse to uniconify the
e_clients.

This fixes T1797

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, cippp

Maniphest Tasks: T1797

Differential Revision: https://phab.enlightenment.org/D1655
2014-11-12 20:49:46 +01:00
Chris Michael 69c71a16bb e-comp-wl: Implement client idler for sending configure during resize.
Cleanup surface commit function to work with new pixmap caching code.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-10 11:58:20 -05:00
Chris Michael 4dfdfe2428 Implement caching of pixmap resources for wayland clients.
Move sending of frame completion to the image_draw function.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-10 11:55:18 -05:00
Chris Michael 2e0168359e e-comp: Return proper post value for wayland clients during
client_update

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-10 10:20:49 -05:00
Chris Michael 3ef4ca19bc Fix incorrect return value when creating native surface for wayland
clients

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-07 13:15:10 -05:00
kabeer khan d36166f4af e_startup: Added dialog to notify user to fix his dbus setup
Summary:
Resolved TODO in e_startup, In case of dbus error added dialog
box to notify user to fix his dbus setup

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1648
2014-11-07 08:34:00 -05:00
Mike Blumenkrantz 5172b7f3f9 add alignment client menu
for everyone with window placement ocd who doesn't tile
2014-11-05 15:04:10 -05:00
Chris Michael 7f8387b4bc e-comp-wl: Fix keyboard input with wayland clients when running in X11.
Don't run client_post_new hook for deleted clients.
Start work on client pre_frame hook.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael dcffab5c82 e-comp-wl: Clip shape rectangles to client size
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael 19df35bdbf e-comp-wl: Hook into post_new_client event so we can setup hints and
export any shape changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael 86617fe717 e-comp-wl: Set e_client properties on subsurface E_Client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Mike Blumenkrantz f66fd04b82 fix signal emission on selected ilist item icons 2014-11-03 17:07:19 -05:00
Chris Michael 2d7ca6d2eb e-comp-wl: Implement callback for surface resource destroy
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 15:10:38 -05:00
Chris Michael 9ebf046e41 e-comp-wl: Remove unnecessary todo item
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 14:48:19 -05:00
Chris Michael 8a08e17603 e-comp-wl: Implement subsurface parent commit function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 14:47:14 -05:00
Chris Michael 4de0a40d0c e-comp-wl: Implement subsurface commit_to_cache and commit_from_cache
functions

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 14:47:14 -05:00
Mike Blumenkrantz a9495340f6 fix internal window border changing 2014-11-03 14:10:17 -05:00
Chris Michael d3aed14ebc e-comp-wl: Fix various compile errors
Summary: add function prototype for subsurface_parent_commit, fix a
few typos which broke compile

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:50:07 -05:00
Chris Michael 1b3c77bbe9 e-comp-wl: Start on implementing subsurface commit functions
NB: Not complete yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 41fe2c901a e-comp-wl: Add internal function prototype for subsurface commit
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael ff77a2fa08 e-comp-wl: Implement subsurface place_below function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 979ba2f467 e-comp-wl: Implement subsurface place_above function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael ee9e9a51ee e-comp-wl: Implement subsurface desynchronized_set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 60c967a5ba e-comp-wl: Implement subsurface synchronized_set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 393f3c90dd e-comp-wl: Implement subsurface position set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 78fe19065f e-comp-wl: Implement subsurface destroy callbacks
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael c817d83793 e-comp-wl: Destroy subsurface resource in destroy callback
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael f53fc6648c e-comp-wl: Start to reimplement subcompositor and subsurface support
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael c1c3a90f3c e-comp-wl: Cleanup wayland compositor header
Summary: Changes subsurface data structure name, changes cached
damages to be a list (matching surface data structure).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:12 -05:00
Carsten Haitzler 3405362b1d e_auth - null out compilert memset opts like lokker 2014-11-03 18:54:24 +09:00
Chris Michael 103a980adb e_comp_wl: Remove unused variables
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 14:38:29 -04:00
Chris Michael a716f41327 e_comp_wl: add support for priority raise/normalize during focus events
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 14:38:24 -04:00
Chris Michael db795bbb5d e-comp-wl: Make new compositor functional.
- Remove client_window_hash (not needed).
- Add hook for evas resize and update surface (configure_send) during resize.
- Remove old buffer_refenerce mechanism
- Refresh pixmap on surface commit

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 12:33:09 -04:00
Chris Michael 770b3e5f26 change comp_wl_data structure to store the wl_resource of the client
buffer. No longer dealing with reference buffers.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 12:27:41 -04:00
Chris Michael 240d651d2f send wl_buffer release after we have drawn this pixmap
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 12:26:50 -04:00
Chris Michael c0c911af91 e_comp_wl: Implement surface frame callback support
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 89ae4607c9 e_comp_wl: Add hooks for focus in/out events so we can set wayland focus
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 1bc93687db e_comp_wl: Cleanup resizing of wayland clients. This hooks into
various resize callbacks to set/unset the resize edges and to update
the surface size.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 458ce8e86f remove call to release compositor buffer reference in e_pixmap. This
is handled differently now.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael d2360f569c e-comp-wl: Remove resize.width & height from structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 87d9872b4c e-comp-wl: Que a buffer release after we have committed the pending buffer
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 4b1e0e589e e-comp-wl: Comment out EGL include
This fixes a build error from evas engine already including EGL headers

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00