Commit Graph

213 Commits

Author SHA1 Message Date
Mike Blumenkrantz dbcd03044e remove manager number from e_bg functions
this is no longer relevant; related code will be removed soon
2015-03-18 19:12:32 -04:00
Mike Blumenkrantz 09ec213a31 remove e_util_zone_current_get() usage 2015-03-13 17:58:45 -04:00
Mike Blumenkrantz 1fe1c94245 comp canvas functions no longer require an E_Comp param 2015-03-13 16:07:08 -04: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 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
Cedric BAIL 3f9af38da2 edje: remove use of deprecated functions. 2014-06-07 21:10:55 +02:00
Mike Blumenkrantz b82ef28332 remove impossible/unnecessary randr rotation checks
CID 1039944
2014-04-04 15:04:28 -04:00
Sebastian Dransfeld 35fea59e2d conf_randr: redo randr dialog to trust e_randr_cfg
Prevously conf_randr worked directly against ecore_x_randr. Now we
rather modify e_randr_cfg, and use e_randr to apply changes against
ecore_x_randr.
2014-03-06 15:18:15 +01:00
Sebastian Dransfeld c994e235f9 conf_randr: hide refresh rates when none to show 2014-03-06 15:18:15 +01:00
Sebastian Dransfeld d9acc5a5c2 conf_randr: don't store variable when used once 2014-03-06 15:18:15 +01:00
Sebastian Dransfeld 77ea4d2256 conf_randr: remove clone support
Clone isn't well supported in base randr config. Remove until it is.
2014-03-06 15:18:15 +01:00
Sebastian Dransfeld 6e87cec645 conf_randr: use refresh_rate function from e_randr 2014-03-06 15:18:15 +01:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Stefan Schmidt 56fe7e4e5b conf_randr: Compare mode against correct smart data.
This copy and paste bug compared the sd mode against the parent sd mode.
Classical c&p bug when having two blocks of code so similar.

CID: 1039954
2013-11-15 15:55:45 +01:00
Carsten Haitzler fdc9b52299 randr dialog - fix badly broken screen resizing logic. now it works reliably. 2013-11-14 15:10:36 +09:00
Sebastian Dransfeld 51a7ff2847 e/randr: lower monitor on middle click
If monitors are stacked above each other it is diffiult to find the
monitor below.
2013-11-04 11:16:05 +01:00
Chris Michael ee0a87773c Fix rare bug where getting refresh rate may cause a crash if
mode->name is NULL by checking mode id instead of name.

Also if we are disabling a monitor, set current mode to 0.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-10-17 18:07:22 +01:00
Chris Michael 0d03652c84 Improve monitor resize/mouse interaction (hopefully).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-15 10:18:20 +01:00
Chris Michael 886a5c4808 Fix randr cloning support with odd monitor sizes
Now, if a clone cannot be set to the same resolution as the parent,
then we will go through all the parent modes and try to find one that
Both support.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-14 09:07:26 +01:00
Chris Michael 0d28595b66 Fix issue where randr dialog would crash when trying to close after
cloning.

Don't free the mode_info returned from mode find as this mode info is
still part of the monitors collection of modes.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-14 08:30:22 +01:00
Chris Michael 2b4a0e675b Fix RandR dailog issues.
- Detect when cloning is changed and update monitor "changes"
- When cloning, we cannot necessarily match parent's Mode, so find a
mode which matches on Size.
- Fix mouse pointer change issue where pointer was not being unset.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-26 12:15:34 +01:00
discomfitor 944cfd246d since we're now requiring an efl version which has the necessary ecore-x functions, remove old and not-compiling ecore-x randr code which obviously has never been compile tested 2013-08-31 15:07:15 +01:00
Chris Michael 57a3a62981 When we try to re-enable a monitor, check the Crtc Mode (not the smart
object Current mode) to determine if it is already disabled.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-05 08:57:57 +01:00
Chris Michael a39246c312 Remove return value in function returning void.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-02 11:36:07 +01:00
Chris Michael 9046a6b6f0 Add function to allow disable/enable of the indicator toggle.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-02 11:07:52 +01:00
Chris Michael 3f2e850259 Big giant Monitor Snapping Fix when we resize or move !! ;)
- Add previous monitor geometry to smart data structure.
- When we set the crtc, also set the monitor current geometry.
- Add function to return the previous monitor geometry.
- On a mouse up, check for monitor location difference versus previous
geometry, if nothing changed then we have no 'move' to do.
- When we start a resize, record the previous geometry and raise the
monitor.
- When a monitor is moved/resized we call the position_update function
which already loops all monitors, so no need to loop them twice.
- Fix position_update function to allow some Snapping Fuzziness so
that on a move/resize any adjoining monitors (within tolerance) will
more reliably snap to each other.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-01 08:25:09 +01:00
Chris Michael 7f6285d9fd When we are re-enabling a monitor, do not free the mode info from the
smart data's list of modes. This will get freed when the dialog closes.

Fix some formatting for 80 columns.

NB: Should fix etrunko crash ;)

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-07-26 16:36:52 +01:00
Chris Michael 0537494ba7 Fix issue of incorrect x/y position being displayed on a monitor after
snapping.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-28 11:03:26 +01:00
Chris Michael b4f277a4a6 When we free outputs, set the variable to NULL.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-27 10:57:22 +01:00
Chris Michael bba201a892 If a monitor is disabled by the user, then we need to set number of
outputs to zero, and free any allocated outputs before trying to apply
settings.

Also, check for valid mode (not 0) before trying to fetch mode_info.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-27 07:39:23 +01:00
Mike Blumenkrantz 0dd2efa30f ensure randr dialog clears its pointer stack 2013-06-24 10:56:21 +01:00
Chris Michael ee715e2472 Fix possible memory leak reported by klockwork.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-29 13:05:43 +01:00
Chris Michael 1b76632915 Add suport for setting the Primary Output in the randr dialog....for
my German friend ;)

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-24 13:05:41 +01:00
Chris Michael d6a392d127 Preliminary support for Primary Output of XRandR
NB: If you have more than one output, XRandR has the option/support to
set a specific monitor as the primary output. These changes allow some
distinction in the dialog between which output is primary (a faint
glow around the monitor). This is just the "display" portion of
Primary Output support ... next is a method to Change that.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-24 11:28:34 +01:00
Chris Michael 10acf59475 Fix potential memleaks reported by klockwork.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-20 10:31:01 +01:00
Chris Michael 37498d7062 Add function to find a valid crtc for this monitor if none is set.
If a monitor gets re-enabled and no current mode is set (which is
typically the case), then find a mode based on size.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-19 12:44:26 +01:00
Chris Michael 31d34db673 Initialize 'orients' variable to rotation 0.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-19 12:44:26 +01:00
Chris Michael 1197cc43a9 Minor formatting fix.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-18 16:35:16 +01:00
Christopher Michael eca3475b79 Fix incorrect monitor position text on some startup cases.
When we call "grid_set" (as a result of the grid object moving or
resizing), we should update the monitor position text.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-27 12:01:25 +00:00
Christopher Michael dce3e8f74f Skip refresh rate checks during resize.
Some people have reported that resizing is difficult, or that they
could not get to the max resolution of their monitor(s). Skipping the
refresh rate check during resolution finding fixes that ... With a big
fat Gotcha !!! because now after changing resolutions, the refresh
rate May not match what was previously selected....

So, as a word of CAUTION: After you set a resolution you should now
Verify your Refresh Rate before Applying, else you may be getting an
undesirable rate :/

Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-26 11:09:45 +00:00
Christopher Michael c3736db94f Add a monitor_resized callback so positions of other monitors can be
updated.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84233
2013-02-19 11:01:29 +00:00
Christopher Michael 8109e62825 When we do a current_geometry set, repack the monitor to the updated
geometry.
Add a geometry_get function for monitor.
Fix up cloning code to work properly with different size
parents/children.
Add a monitor_clone_parent_get function.
When applying changes, also use crtc_clone_set function.
Add smart callback for monitor_moved to tell randr widget it may need
to shuffle things around.
Use output mouse position, not canvas position.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84228
2013-02-19 11:01:14 +00:00
Christopher Michael 686ff23a54 Add some comments.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84219
2013-02-19 11:00:09 +00:00
Christopher Michael 0ac5ed720a Handle apply of monitor changes to X.
Reduce position text set calls and just do it on smart_move.
Add a changes_apply function.
Add code to record changes to a monitor.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84217
2013-02-19 10:59:58 +00:00
Christopher Michael 994586d509 Add code to handle when cloning monitors so that the size, mode and
orient of each will match (NB: This is required by XRandR in order for
cloning to be successful).

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84212
2013-02-19 10:59:44 +00:00
Christopher Michael 6739bcfe66 Add the clone object as a smart member for monitor.
Add some comments.
Update position and resolution text when we unclone.
Repack the monitor into the grid when we unclone.
Set virtual thumb size correctly.
Emit disabled signal (if needed) when we unclone.
Also record x/y coordinates when doing move/resize/rotate.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84210
2013-02-19 10:59:38 +00:00
Christopher Michael fee5a89bfa Add cloning support for monitor.
Tie in code for indicator toggle (enable/disable).
Add function to return a monitor's crtc id (used in randr widget).

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84207
2013-02-19 10:59:30 +00:00
Christopher Michael 5f68828189 Simplify the monitor rotation code and make sure new positions are
within grid virtual space.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84203
2013-02-19 10:59:20 +00:00
Christopher Michael 1d10a382b6 Actually, allow move/resize/rotate for disabled monitors so things can
be adjusted (NB: Will not actually mattery on Apply anyway).

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84197
2013-02-19 10:59:03 +00:00
Christopher Michael c5254ce545 Set current size and position text when we set current values.
Add function for setting current geometry.
If a monitor is disabled, do not allow rotate, resize, move events.
Fix resize start/stop functions to use current geometry.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 84196
2013-02-19 10:59:00 +00:00