From: Enlightenment S. <no-...@en...> - 2008-10-18 21:20:58
|
Log: Correctness and trivial stuff. Author: kwo Date: 2008-10-18 14:20:53 -0700 (Sat, 18 Oct 2008) New Revision: 36795 Modified: trunk/E16/e/src/E.h trunk/E16/e/src/alert.c trunk/E16/e/src/ipc.c trunk/E16/e/src/screen.c trunk/E16/e/src/session.c trunk/E16/e/src/text.c trunk/E16/e/src/util.h trunk/E16/e/src/x.c Modified: trunk/E16/e/src/E.h =================================================================== --- trunk/E16/e/src/E.h 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/E.h 2008-10-18 21:20:53 UTC (rev 36795) @@ -481,7 +481,7 @@ void SignalsRestore(void); /* main.c */ -void EExit(int exitcode); +__NORETURN__ void EExit(int exitcode); const char *EDirRoot(void); const char *EDirBin(void); const char *EDirUser(void); Modified: trunk/E16/e/src/alert.c =================================================================== --- trunk/E16/e/src/alert.c 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/alert.c 2008-10-18 21:20:53 UTC (rev 36795) @@ -199,7 +199,7 @@ dd = XOpenDisplay(NULL); if (!dd) { - fprintf(stderr, text); + fprintf(stderr, "%s", text); fflush(stderr); return; } Modified: trunk/E16/e/src/ipc.c =================================================================== --- trunk/E16/e/src/ipc.c 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/ipc.c 2008-10-18 21:20:53 UTC (rev 36795) @@ -1830,7 +1830,7 @@ nick = (ipc->nick) ? ipc->nick : ""; IpcPrintf("%18s %4s: %s\n", ipc->name, nick, ipc->help_text); if (ipc->extended_help_text) - IpcPrintf(ipc->extended_help_text); + IpcPrintf("%s", ipc->extended_help_text); } } else @@ -1847,7 +1847,7 @@ IpcPrintf("%18s %4s: %s\n", ipc->name, nick, ipc->help_text); IpcPrintf("----------------------------------------\n"); if (ipc->extended_help_text) - IpcPrintf(ipc->extended_help_text); + IpcPrintf("%s", ipc->extended_help_text); } } } Modified: trunk/E16/e/src/screen.c =================================================================== --- trunk/E16/e/src/screen.c 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/screen.c 2008-10-18 21:20:53 UTC (rev 36795) @@ -60,12 +60,14 @@ void ScreenInit(void) { - n_screens = 0; /* Causes reconfiguration */ - #ifdef HAVE_XINERAMA XineramaScreenInfo *screens; int i, num_screens; +#endif + n_screens = 0; /* Causes reconfiguration */ + +#ifdef HAVE_XINERAMA if (Mode.wm.window) return; Modified: trunk/E16/e/src/session.c =================================================================== --- trunk/E16/e/src/session.c 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/session.c 2008-10-18 21:20:53 UTC (rev 36795) @@ -492,7 +492,7 @@ * and then restore it on restart. We grab X input via the ext_init_win * so the our clients remain frozen while we are down. */ -static void +__NORETURN__ static void doSMExit(int mode, const char *params) { int l; Modified: trunk/E16/e/src/text.c =================================================================== --- trunk/E16/e/src/text.c 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/text.c 2008-10-18 21:20:53 UTC (rev 36795) @@ -365,9 +365,9 @@ while (*pw > textwidth_limit) { - nuke_count++; int len_mb; + nuke_count++; if (nuke_count >= wc_len - 1) { int mlen; Modified: trunk/E16/e/src/util.h =================================================================== --- trunk/E16/e/src/util.h 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/util.h 2008-10-18 21:20:53 UTC (rev 36795) @@ -45,8 +45,10 @@ #if HAVE___ATTRIBUTE__ #define __PRINTF_N__(no) __attribute__((__format__(__printf__, (no), (no)+1))) +#define __NORETURN__ __attribute__((noreturn)) #else #define __PRINTF_N__(no) +#define __NORETURN__ #endif #define __PRINTF__ __PRINTF_N__(1) #define __PRINTF_2__ __PRINTF_N__(2) Modified: trunk/E16/e/src/x.c =================================================================== --- trunk/E16/e/src/x.c 2008-10-18 21:13:11 UTC (rev 36794) +++ trunk/E16/e/src/x.c 2008-10-18 21:20:53 UTC (rev 36795) @@ -1718,7 +1718,7 @@ if (scr >= 0) { /* Override screen */ - Esnprintf(dbuf, sizeof(dbuf) - 10, dstr); + Esnprintf(dbuf, sizeof(dbuf) - 10, "%s", dstr); s = strchr(dbuf, ':'); if (s) { |
From: Enlightenment S. <no-...@en...> - 2008-10-24 19:11:38
|
Log: No need to keep cursor pixmap file name. Author: kwo Date: 2008-10-24 12:11:32 -0700 (Fri, 24 Oct 2008) New Revision: 37073 Modified: trunk/E16/e/src/cursors.c Modified: trunk/E16/e/src/cursors.c =================================================================== --- trunk/E16/e/src/cursors.c 2008-10-24 18:29:32 UTC (rev 37072) +++ trunk/E16/e/src/cursors.c 2008-10-24 19:11:32 UTC (rev 37073) @@ -34,7 +34,6 @@ struct _ecursor { char *name; - char *file; Cursor cursor; unsigned int ref_count; }; @@ -150,7 +149,6 @@ ec = EMALLOC(ECursor, 1); ec->name = Estrdup(name); - ec->file = Estrdup(image); ec->cursor = curs; ec->ref_count = 0; @@ -176,7 +174,6 @@ ecore_list_node_remove(cursor_list, ec); Efree(ec->name); - Efree(ec->file); Efree(ec); } |
From: Enlightenment S. <no-...@en...> - 2008-10-24 19:13:47
|
Log: Free imagestate image file name when no longer needed. Author: kwo Date: 2008-10-24 12:13:43 -0700 (Fri, 24 Oct 2008) New Revision: 37074 Modified: trunk/E16/e/src/iclass.c Modified: trunk/E16/e/src/iclass.c =================================================================== --- trunk/E16/e/src/iclass.c 2008-10-24 19:11:32 UTC (rev 37073) +++ trunk/E16/e/src/iclass.c 2008-10-24 19:13:43 UTC (rev 37074) @@ -244,26 +244,31 @@ static void ImagestateRealize(ImageState * is) { - if (is == NULL || is->im_file == NULL) + if (!is) return; - - /* has bg pixmap */ - if (is->im) + if (is->im) /* Image is already loaded */ return; /* not loaded, load and setup */ - if (!is->real_file) + if (!is->real_file && is->im_file) is->real_file = ThemeFileFind(is->im_file); if (is->real_file) is->im = EImageLoad(is->real_file); + if (!is->im) { +#define S(s) ((s) ? (s) : "(null)") Eprintf ("ImagestateRealize: Hmmm... is->im is NULL (im_file=%s real_file=%s)\n", - is->im_file, is->real_file); + S(is->im_file), S(is->real_file)); + Efree(is->real_file); + is->real_file = NULL; return; } + Efree(is->im_file); /* We no longer need the file */ + is->im_file = NULL; + EImageCheckAlpha(is->im); if (is->border) @@ -648,7 +653,7 @@ if (!is) return NULL; - if (is->im == NULL && is->im_file) + if (is->im == NULL) ImagestateRealize(is); im = is->im; @@ -1040,7 +1045,7 @@ ts = TextclassGetTextState(tc, state, active, sticky); } - if (is->im == NULL && is->im_file) + if (is->im == NULL) ImagestateRealize(is); /* Imlib2 will not render pixmaps with dimensions > 8192 */ @@ -1171,7 +1176,7 @@ if (!is) return; - if (is->im == NULL && is->im_file) + if (is->im == NULL) ImagestateRealize(is); /* Imlib2 will not render pixmaps with dimensions > 8192 */ |
From: Enlightenment S. <no-...@en...> - 2008-10-24 19:16:48
|
Log: Don't look for background image files until actually used. Author: kwo Date: 2008-10-24 12:16:38 -0700 (Fri, 24 Oct 2008) New Revision: 37076 Modified: trunk/E16/e/src/backgrounds.c Modified: trunk/E16/e/src/backgrounds.c =================================================================== --- trunk/E16/e/src/backgrounds.c 2008-10-24 19:15:09 UTC (rev 37075) +++ trunk/E16/e/src/backgrounds.c 2008-10-24 19:16:38 UTC (rev 37076) @@ -1074,38 +1074,9 @@ switch (ii1) { case CONFIG_CLOSE: - if (!ignore) - { - if ((!bg) && (name)) - { - char *tmp; - char ok = 1; - - /* check first if we can actually find the files */ - if (bg1) - { - tmp = ThemeFileFind(bg1); - if (!tmp) - ok = 0; - else - Efree(tmp); - } - if (bg2) - { - tmp = ThemeFileFind(bg2); - if (!tmp) - ok = 0; - else - Efree(tmp); - } - if (ok) - { - bg = BackgroundCreate(name, &color, bg1, i1, i2, i3, - i4, i5, i6, bg2, j1, j2, j3, - j4, j5); - } - } - } + if (!ignore && !bg && name) + bg = BackgroundCreate(name, &color, bg1, i1, i2, i3, i4, i5, + i6, bg2, j1, j2, j3, j4, j5); goto done; case CONFIG_COLORMOD: @@ -1127,18 +1098,16 @@ break; case BG_DESKNUM: + if (!ignore && !bg && name) + bg = BackgroundCreate(name, &color, bg1, i1, i2, i3, i4, i5, + i6, bg2, j1, j2, j3, j4, j5); + if (!bg) + break; desk = atoi(s2); if (desk >= N_BG_ASSIGNED) break; if (!bg_assigned[desk] || Conf.backgrounds.user) { - if (!ignore) - { - if (!bg) - bg = BackgroundCreate(name, &color, bg1, i1, i2, - i3, i4, i5, i6, bg2, j1, - j2, j3, j4, j5); - } bg_assigned[desk] = bg; bg->referenced = 1; } |
From: Enlightenment S. <no-...@en...> - 2008-10-26 11:24:38
|
Log: Remove generation of menus from dirs with .desktop files. Author: kwo Date: 2008-10-26 04:18:37 -0700 (Sun, 26 Oct 2008) New Revision: 37133 Modified: trunk/E16/e/src/menus-misc.c Modified: trunk/E16/e/src/menus-misc.c =================================================================== --- trunk/E16/e/src/menus-misc.c 2008-10-26 11:13:51 UTC (rev 37132) +++ trunk/E16/e/src/menus-misc.c 2008-10-26 11:18:37 UTC (rev 37133) @@ -422,117 +422,6 @@ return m; } -static Menu * -MenuCreateFromGnome(const char *name, Menu * parent, MenuStyle * ms, - const char *dir) -{ - Menu *m, *mm; - int i, num; - char **list, s[4096], ss[4096]; - MenuItem *mi; - FILE *f; - char name_buf[20]; - - if (Mode.locale.lang) - Esnprintf(name_buf, sizeof(name_buf), "Name[%s]=", Mode.locale.lang); - else - name_buf[0] = '\0'; - - m = MenuCreate(name, NULL, parent, ms); - - list = E_ls(dir, &num); - for (i = 0; i < num; i++) - { - if ((strcmp(list[i], ".")) && (strcmp(list[i], ".."))) - { - Esnprintf(ss, sizeof(ss), "%s/%s", dir, list[i]); - if (isdir(ss)) - { - Esnprintf(s, sizeof(s), "%s/%s:%s", dir, list[i], name); - mm = MenuCreateFromGnome(s, m, ms, ss); - - name = list[i]; - if (name_buf[0]) - { - Esnprintf(s, sizeof(s), "%s/.directory", ss); - if ((f = fopen(s, "r")) != NULL) - { - while (fgets(s, sizeof(s), f)) - { - if (!strncmp(s, name_buf, strlen(name_buf))) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = 0; - name = &(s[strlen(name_buf)]); - break; - } - } - fclose(f); - } - } - mi = MenuItemCreate(name, NULL, NULL, mm); - MenuAddItem(m, mi); - } - else - { - f = fopen(ss, "r"); - if (f) - { - char *iname, *exec, *texec, *en_name; - - iname = exec = texec = en_name = NULL; - - while (fgets(s, sizeof(s), f)) - { - if (s[strlen(s) - 1] == '\n') - s[strlen(s) - 1] = 0; - if (!strncmp(s, "Name=", strlen("Name="))) - en_name = Estrdup(&(s[strlen("Name=")])); - else if (name_buf[0] - && !strncmp(s, name_buf, strlen(name_buf))) - iname = Estrdup(&(s[strlen(name_buf)])); - else if (!strncmp - (s, "TryExec=", strlen("TryExec="))) - texec = Estrdup(&(s[strlen("TryExec=")])); - else if (!strncmp(s, "Exec=", strlen("Exec="))) - exec = Estrdup(&(s[strlen("Exec=")])); - } - if (iname) - { - Efree(en_name); - } - else - { - if (en_name) - iname = en_name; - } - fclose(f); - if ((iname) && (exec)) - { - int ok = 1; - - if (texec) - ok = path_canexec(texec); - if (ok) - { - Esnprintf(s, sizeof(s), "exec %s", exec); - mi = MenuItemCreate(iname, NULL, s, NULL); - MenuAddItem(m, mi); - } - } - Efree(iname); - Efree(exec); - Efree(texec); - } - } - } - } - if (list) - StrlistFree(list, num); - - return m; -} - static int MenuLoadFromThemes(Menu * m) { @@ -813,10 +702,6 @@ SoundPlay("SOUND_SCANNING"); m = MenuCreateFromDirectory(name, NULL, ms, prm); } - else if (!strcmp(type, "gnome")) - { - m = MenuCreateFromGnome(name, NULL, ms, prm); - } else if (!strcmp(type, "borders")) { m = MenuCreateFromBorders(name, ms); |
From: Enlightenment S. <no-...@en...> - 2008-10-26 15:34:51
|
Log: Fix potential segv when processing invalid menus.cfg. Author: kwo Date: 2008-10-26 08:34:48 -0700 (Sun, 26 Oct 2008) New Revision: 37148 Modified: trunk/E16/e/src/menus.c Modified: trunk/E16/e/src/menus.c =================================================================== --- trunk/E16/e/src/menus.c 2008-10-26 14:02:10 UTC (rev 37147) +++ trunk/E16/e/src/menus.c 2008-10-26 15:34:48 UTC (rev 37148) @@ -1881,6 +1881,12 @@ i1 = ConfigParseline1(s, s2, &p2, &p3); switch (i1) { + default: + break; + + case CONFIG_VERSION: + continue; + case CONFIG_MENU: err = -1; i2 = atoi(s2); @@ -1889,36 +1895,49 @@ m = NULL; ic = NULL; _EFREE(txt); - break; + continue; case CONFIG_CLOSE: err = 0; - break; + continue; case MENU_PREBUILT: sscanf(p3, "%4000s %4000s %4000s", s3, s4, s5); m = MenusCreateInternal(s4, s2, s3, s5); - break; + continue; + case CONFIG_CLASSNAME: if (!m) m = MenuCreate(s2, NULL, NULL, NULL); else MenuSetName(m, s2); params = _MenuCheckAlias(s2); - if (params) + if (m && params) MenuSetAlias(m, params); - break; + continue; + + case MENU_ITEM: + ic = NULL; + if (strcmp("NULL", s2)) + ic = ImageclassFind(s2, 0); + _EFDUP(txt, p3); + continue; + } + + /* The rest require the menu m to be created */ + if (!m) + { + ConfigParseError("Menu", s); + continue; + } + + switch (i1) + { case MENU_USE_STYLE: MenuSetStyle(m, MenuStyleFind(s2)); break; case MENU_TITLE: MenuSetTitle(m, p2); break; - case MENU_ITEM: - ic = NULL; - if (strcmp("NULL", s2)) - ic = ImageclassFind(s2, 0); - _EFDUP(txt, p3); - break; case MENU_ACTION: if ((txt) || (ic)) { |
From: Enlightenment S. <no-...@en...> - 2008-10-26 15:35:48
|
Log: Max E_CFG_VERSION 1->2. Author: kwo Date: 2008-10-26 08:35:44 -0700 (Sun, 26 Oct 2008) New Revision: 37149 Modified: trunk/E16/e/src/config.c Modified: trunk/E16/e/src/config.c =================================================================== --- trunk/E16/e/src/config.c 2008-10-26 15:34:48 UTC (rev 37148) +++ trunk/E16/e/src/config.c 2008-10-26 15:35:44 UTC (rev 37149) @@ -37,6 +37,8 @@ #include "user.h" #include "windowmatch.h" +#define MAX_E_CFG_VERSION 2 /* Max. supported configuration version */ + void SkipTillEnd(FILE * fs) { @@ -273,7 +275,6 @@ int i1, i2, fields; char s[FILEPATH_LEN_MAX]; int e_cfg_ver = 0; - int max_e_cfg_ver = 1; while (GetLine(s, sizeof(s), fs)) { @@ -307,7 +308,7 @@ if (i2 == CONFIG_OPEN) { - if (e_cfg_ver > max_e_cfg_ver) + if (e_cfg_ver > MAX_E_CFG_VERSION) { AlertX(_("Theme versioning ERROR"), _("Restart with Defaults"), " ", @@ -326,7 +327,7 @@ "it may be that you haven't upgraded Enlightenment for\n" "a while and this theme takes advantages of new\n" "features in Enlightenment in new versions.\n"), - e_cfg_ver, max_e_cfg_ver); + e_cfg_ver, MAX_E_CFG_VERSION); SessionExit(EEXIT_THEME, "DEFAULT"); } else |
From: Enlightenment S. <no-...@en...> - 2008-11-05 22:56:17
|
Log: Add sanity check to avoid X-errors. Author: kwo Date: 2008-11-05 14:56:14 -0800 (Wed, 05 Nov 2008) New Revision: 37521 Modified: trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-05 22:56:11 UTC (rev 37520) +++ trunk/E16/e/src/dialog.c 2008-11-05 22:56:14 UTC (rev 37521) @@ -1282,6 +1282,8 @@ dii->w = sw - (dii->padding.left + dii->padding.right); if (dii->fill_v) dii->h = sh - (dii->padding.top + dii->padding.bottom); + if (dii->w <= 0 || dii->h <= 0) + goto skip; if (dii->type == DITEM_TABLE) { int dx, dy, newx, newy; @@ -1384,6 +1386,7 @@ dii->item.slider.numeric_h); } } + skip: x += sw; c += dii->col_span; if (c >= cols) |
From: Enlightenment S. <no-...@en...> - 2008-11-07 17:50:16
|
Log: Disable moving fixed position windows using pager (pfritz, ticket 116). Author: kwo Date: 2008-11-07 09:50:11 -0800 (Fri, 07 Nov 2008) New Revision: 37533 Modified: trunk/E16/e/src/pager.c Modified: trunk/E16/e/src/pager.c =================================================================== --- trunk/E16/e/src/pager.c 2008-11-07 15:40:18 UTC (rev 37532) +++ trunk/E16/e/src/pager.c 2008-11-07 17:50:11 UTC (rev 37533) @@ -1428,7 +1428,7 @@ else if (button == Conf_pagers.win_button) { ewin = EwinInPagerAt(p, px, py); - if ((ewin) && (ewin->type != EWIN_TYPE_PAGER)) + if (ewin && ewin->type != EWIN_TYPE_PAGER && !ewin->state.inhibit_move) { PagerHiwinShow(p, ewin, 1, !Mode.wm.window); Mode.mode = MODE_PAGER_DRAG_PENDING; |
From: Enlightenment S. <no-...@en...> - 2008-11-08 12:21:14
|
Log: Fix various issues noted by Don Harrop - Fix using tiles in iconbox background - Fix breaking window group using winops menu - Fix virtual desktop configuration area when SETTINGS_AREADESK_AREA is shaped Author: kwo Date: 2008-11-08 04:21:10 -0800 (Sat, 08 Nov 2008) New Revision: 37548 Modified: trunk/E16/e/src/desktops.c trunk/E16/e/src/groups.c trunk/E16/e/src/iclass.c Modified: trunk/E16/e/src/desktops.c =================================================================== --- trunk/E16/e/src/desktops.c 2008-11-08 08:54:34 UTC (rev 37547) +++ trunk/E16/e/src/desktops.c 2008-11-08 12:21:10 UTC (rev 37548) @@ -2419,16 +2419,12 @@ CB_AreaDisplayRedraw(Dialog * d __UNUSED__, int val, void *data) { static int prev_ax = 0, prev_ay = 0; - static char called = 0; static Win awin; char s[64]; DItem *di; Win win; int w, h; - if (val == 1) - called = 0; - if ((val != 1) && ((prev_ax == tmp_area_x) && (prev_ay == tmp_area_y))) return; @@ -2439,18 +2435,19 @@ win = DialogItemAreaGetWindow(di); DialogItemAreaGetSize(di, &w, &h); - if (!called) + if (val == 1) { ImageClass *ic; + Pixmap pmap; ic = ImageclassFind("SETTINGS_AREA_AREA", 1); ImageclassApply(ic, win, 0, 0, STATE_NORMAL, ST_SOLID); + /* Note: awin is destroyed when the dialog is destroyed */ awin = ECreateWindow(win, 0, 0, 18, 14, 0); ic = ImageclassFind("SETTINGS_AREADESK_AREA", 1); - ImageclassApply(ic, awin, 0, 0, STATE_NORMAL, ST_SOLID); - - called = 1; + pmap = EGetWindowBackgroundPixmap(awin); + ImageclassApplySimple(ic, awin, pmap, STATE_NORMAL, 0, 0, 18, 14); } EMoveResizeWindow(awin, ((w / 2) - (9 * tmp_area_x)), ((h / 2) - (7 * (9 - tmp_area_y))), 18 * tmp_area_x, Modified: trunk/E16/e/src/groups.c =================================================================== --- trunk/E16/e/src/groups.c 2008-11-08 08:54:34 UTC (rev 37547) +++ trunk/E16/e/src/groups.c 2008-11-08 12:21:10 UTC (rev 37548) @@ -165,25 +165,24 @@ static void BreakWindowGroup(EWin * ewin, Group * g) { - int i, j, num; + int i, j; EWin *ewin2; + Group *g2; - if (ewin) + if (!ewin || !ewin->groups) + return; + + for (j = 0; j < ewin->num_groups; j++) { - if (ewin->groups) + g2 = ewin->groups[j]; + if (g && g != g2) + continue; + + for (i = 0; i < g2->num_members; i++) { - for (j = 0; j < ewin->num_groups; j++) - if (ewin->groups[j] == g) - { - num = g->num_members; - for (i = 0; i < num; i++) - { - ewin2 = g->members[0]; - RemoveEwinFromGroup(g->members[0], g); - SnapshotEwinUpdate(ewin2, SNAP_USE_GROUPS); - } - return; - } + ewin2 = g2->members[0]; + RemoveEwinFromGroup(ewin2, g2); + SnapshotEwinUpdate(ewin2, SNAP_USE_GROUPS); } } } Modified: trunk/E16/e/src/iclass.c =================================================================== --- trunk/E16/e/src/iclass.c 2008-11-08 08:54:34 UTC (rev 37547) +++ trunk/E16/e/src/iclass.c 2008-11-08 12:21:10 UTC (rev 37548) @@ -761,13 +761,20 @@ ImageclassGetImageBlended(ImageClass * ic, Win win, int w, int h, int active, int sticky, int state, int image_type) { + ImageState *is; EImage *im, *bg; int flags; if (!ic) return NULL; - im = ImageclassGetImage(ic, active, sticky, state); + is = ImageclassGetImageState(ic, state, active, sticky); + if (!is) + return NULL; + + if (is->im == NULL) + ImagestateRealize(is); + im = is->im; if (!im) return NULL; @@ -778,6 +785,7 @@ bg = pt_get_bg_image(win, w, h, flags & ICLASS_ATTR_GLASS); if (bg) { + /* FIXME - Tiling not implemented */ EImageBlendCM(bg, im, (flags & ICLASS_ATTR_USE_CM) ? icm : NULL); goto done; } @@ -787,12 +795,35 @@ win = None; #endif - bg = EImageCreateScaled(im, 0, 0, 0, 0, w, h); + if (is->pixmapfillstyle == FILL_STRETCH) + { + bg = EImageCreateScaled(im, 0, 0, 0, 0, w, h); + } + else + { + int iw, ih, tw, th; + EImageGetSize(im, &iw, &ih); + + tw = w; + th = h; + if (is->pixmapfillstyle & FILL_TILE_H) + tw = iw; + if (is->pixmapfillstyle & FILL_TILE_V) + th = ih; + + bg = EImageCreate(w, h); + EImageTile(bg, im, 0, tw, th, 0, 0, w, h, 0, 0); + } + #ifdef ENABLE_TRANSPARENCY done: #endif - EImageFree(im); + if ((is->unloadable) || (Conf.memory_paranoia)) + { + EImageFree(is->im); + is->im = NULL; + } return bg; } |
From: Enlightenment S. <no-...@en...> - 2008-11-08 15:47:18
|
Log: Fix handling of windows in multiple groups after restart. Author: kwo Date: 2008-11-08 07:47:09 -0800 (Sat, 08 Nov 2008) New Revision: 37551 Modified: trunk/E16/e/src/groups.c trunk/E16/e/src/groups.h trunk/E16/e/src/snaps.c Modified: trunk/E16/e/src/groups.c =================================================================== --- trunk/E16/e/src/groups.c 2008-11-08 15:17:13 UTC (rev 37550) +++ trunk/E16/e/src/groups.c 2008-11-08 15:47:09 UTC (rev 37551) @@ -33,6 +33,13 @@ #include "timers.h" #include <math.h> +#define DEBUG_GROUPS 0 +#if DEBUG_GROUPS +#define Dprintf(fmt, ...) Eprintf("%s: " fmt, __func__, __VA_ARGS__) +#else +#define Dprintf(fmt...) +#endif + #define USE_GROUP_SHOWHIDE 0 /* Don't think this is useful. */ #define SET_OFF 0 @@ -94,6 +101,7 @@ g->cfg.shade = Conf_groups.dflt.shade; g->cfg.mirror = Conf_groups.dflt.mirror; + Dprintf("grp=%p gid=%d\n", g, g->index); return g; } @@ -103,6 +111,7 @@ if (!g) return; + Dprintf("grp=%p gid=%d\n", g, g->index); ecore_list_node_remove(group_list, g); if (g == Mode_groups.current) @@ -169,6 +178,7 @@ EWin *ewin2; Group *g2; + Dprintf("ewin=%p group=%p gid=%d\n", ewin, g, g->index); if (!ewin || !ewin->groups) return; @@ -265,40 +275,54 @@ } static void -AddEwinToGroup(EWin * ewin, Group * g) +_GroupAddEwin(Group * g, EWin * ewin) { int i; - if (ewin && g) - { - for (i = 0; i < ewin->num_groups; i++) - if (ewin->groups[i] == g) - return; - ewin->num_groups++; - ewin->groups = EREALLOC(Group *, ewin->groups, ewin->num_groups); - ewin->groups[ewin->num_groups - 1] = g; - g->num_members++; - g->members = EREALLOC(EWin *, g->members, g->num_members); - g->members[g->num_members - 1] = ewin; - SnapshotEwinUpdate(ewin, SNAP_USE_GROUPS); - } + for (i = 0; i < ewin->num_groups; i++) + if (ewin->groups[i] == g) + return; + + ewin->num_groups++; + ewin->groups = EREALLOC(Group *, ewin->groups, ewin->num_groups); + ewin->groups[ewin->num_groups - 1] = g; + g->num_members++; + g->members = EREALLOC(EWin *, g->members, g->num_members); + g->members[g->num_members - 1] = ewin; } +static void +AddEwinToGroup(EWin * ewin, Group * g) +{ + if (!ewin || !g) + return; + + _GroupAddEwin(g, ewin); + SnapshotEwinUpdate(ewin, SNAP_USE_GROUPS); +} + void -GroupsEwinAdd(EWin * ewin, int gid) +GroupsEwinAdd(EWin * ewin, const int *pgid, int ngid) { - Group *group; + Group *g; + int i, gid; - group = GroupFind(gid); - if (!group) + for (i = 0; i < ngid; i++) { - /* This should not happen, but may if group/snap configs are corrupted */ - BuildWindowGroup(&ewin, 1, gid); + gid = pgid[i]; + g = GroupFind(gid); + Dprintf("ewin=%p gid=%d grp=%p\n", ewin, gid, g); + if (!g) + { + /* This should not happen, but may if group/snap configs are corrupted */ + BuildWindowGroup(&ewin, 1, gid); + } + else + { + _GroupAddEwin(g, ewin); + } } - else - { - AddEwinToGroup(ewin, group); - } + SnapshotEwinUpdate(ewin, SNAP_USE_GROUPS); } static int Modified: trunk/E16/e/src/groups.h =================================================================== --- trunk/E16/e/src/groups.h 2008-11-08 15:17:13 UTC (rev 37550) +++ trunk/E16/e/src/groups.h 2008-11-08 15:47:09 UTC (rev 37551) @@ -66,7 +66,7 @@ /* groups.c */ Group *const *EwinGetGroups(const EWin * ewin, int *num); Group *EwinsInGroup(const EWin * ewin1, const EWin * ewin2); -void GroupsEwinAdd(EWin * ewin, int gid); +void GroupsEwinAdd(EWin * ewin, const int *pgid, int ngid); void GroupsEwinRemove(EWin * ewin); void GroupsLoad(void); void GroupsSave(void); Modified: trunk/E16/e/src/snaps.c =================================================================== --- trunk/E16/e/src/snaps.c 2008-11-08 15:17:13 UTC (rev 37550) +++ trunk/E16/e/src/snaps.c 2008-11-08 15:47:09 UTC (rev 37551) @@ -1405,7 +1405,7 @@ SnapshotEwinApply(EWin * ewin) { Snapshot *sn; - int i, ax, ay; + int ax, ay; unsigned int use_flags; _SnapEwinFind(ewin); /* Find a saved settings match */ @@ -1476,8 +1476,8 @@ if (use_flags & SNAP_USE_BORDER) EwinSetBorderByName(ewin, sn->border_name); - for (i = 0; i < sn->num_groups; i++) - GroupsEwinAdd(ewin, sn->groups[i]); + if (use_flags & SNAP_USE_GROUPS) + GroupsEwinAdd(ewin, sn->groups, sn->num_groups); #if USE_COMPOSITE if (use_flags & SNAP_USE_OPACITY) |
From: Enlightenment S. <no-...@en...> - 2008-11-08 17:00:09
|
Log: Trivial cleanups. Author: kwo Date: 2008-11-08 09:00:06 -0800 (Sat, 08 Nov 2008) New Revision: 37553 Modified: trunk/E16/e/src/ecompmgr.c trunk/E16/e/src/iclass.c Modified: trunk/E16/e/src/ecompmgr.c =================================================================== --- trunk/E16/e/src/ecompmgr.c 2008-11-08 16:47:52 UTC (rev 37552) +++ trunk/E16/e/src/ecompmgr.c 2008-11-08 17:00:06 UTC (rev 37553) @@ -35,7 +35,6 @@ #include "eobj.h" #include "events.h" #include "hints.h" -#include "settings.h" #include "timers.h" #include "windowmatch.h" #include "xwin.h" Modified: trunk/E16/e/src/iclass.c =================================================================== --- trunk/E16/e/src/iclass.c 2008-11-08 16:47:52 UTC (rev 37552) +++ trunk/E16/e/src/iclass.c 2008-11-08 17:00:06 UTC (rev 37553) @@ -940,7 +940,7 @@ } #define LINE(x1, y1, x2, y2) \ - XDrawLine(disp, win, gc, x + x1, y + y1, x + x2, y + y2) + XDrawLine(disp, win, gc, x + (x1), y + (y1), x + (x2), y + (y2)) #define RECT(x, y, w, h) \ XDrawRectangle(disp, win, gc, x, y, w, h); |
From: Enlightenment S. <no-...@en...> - 2008-11-12 18:59:58
|
Log: Tweak "wop alone" and "show desktop" window selection. Author: kwo Date: 2008-11-12 10:59:52 -0800 (Wed, 12 Nov 2008) New Revision: 37599 Modified: trunk/E16/e/src/ewins.c Modified: trunk/E16/e/src/ewins.c =================================================================== --- trunk/E16/e/src/ewins.c 2008-11-12 11:15:21 UTC (rev 37598) +++ trunk/E16/e/src/ewins.c 2008-11-12 18:59:52 UTC (rev 37599) @@ -212,6 +212,10 @@ ewin->props.never_use_area = 1; ewin->props.donthide = 1; } + + if (ewin->props.skip_ext_task || ewin->props.skip_winlist || + ewin->props.skip_focuslist) + ewin->props.donthide = 1; } static void |
From: Enlightenment S. <no-...@en...> - 2008-11-13 20:50:06
|
Log: Tweaks around xinerama/screen handling. Author: kwo Date: 2008-11-13 12:50:01 -0800 (Thu, 13 Nov 2008) New Revision: 37610 Modified: trunk/E16/e/src/screen.c Modified: trunk/E16/e/src/screen.c =================================================================== --- trunk/E16/e/src/screen.c 2008-11-13 20:49:18 UTC (rev 37609) +++ trunk/E16/e/src/screen.c 2008-11-13 20:50:01 UTC (rev 37610) @@ -40,6 +40,21 @@ static EScreen *p_screens = NULL; static int n_screens = 0; +#ifdef USE_XINERAMA +static XineramaScreenInfo * +EXineramaQueryScreens(int *number) +{ + int event_base, error_base; + + *number = 0; + + if (!XineramaQueryExtension(disp, &event_base, &error_base)) + return NULL; + + return XineramaQueryScreens(disp, number); +} +#endif + void ScreenAdd(int type, int head, int x, int y, unsigned int w, unsigned int h) { @@ -71,12 +86,11 @@ if (Mode.wm.window) return; - Mode.display.xinerama_active = XineramaIsActive(disp); - if (!Mode.display.xinerama_active) - return; + screens = EXineramaQueryScreens(&num_screens); - num_screens = 0; - screens = XineramaQueryScreens(disp, &num_screens); + Mode.display.xinerama_active = (XineramaIsActive(disp)) ? 1 : 0; + if (!Mode.display.xinerama_active && num_screens > 0) + Mode.display.xinerama_active = 2; for (i = 0; i < num_screens; i++) ScreenAdd(0, screens[i].screen_number, screens[i].x_org, @@ -95,8 +109,14 @@ if (nx > 8 || ny > 8) /* At least some limit */ return; - ScreenInit(); /* Reset screen configuration */ + if (nx == 0 || ny == 0) + { + ScreenInit(); + return; + } + n_screens = 0; /* Causes reconfiguration */ + for (i = 0; i < nx; i++) for (j = 0; j < ny; j++) ScreenAdd(1, Dpy.screen, @@ -110,15 +130,28 @@ int i; #ifdef USE_XINERAMA - if (XineramaIsActive(disp)) - { - XineramaScreenInfo *scrns; - int num; + static const char *const mt[] = { "Off", "On", "TV", "???" }; + XineramaScreenInfo *scrns; + int num, mode; +#endif - scrns = XineramaQueryScreens(disp, &num); + IpcPrintf("Head Screen X-Origin Y-Origin Width Height\n"); + IpcPrintf("Screen:\n"); + IpcPrintf(" %2d %2d %5d %5d %5d %5d\n", + 0, Dpy.screen, 0, 0, WinGetW(VROOT), WinGetH(VROOT)); +#ifdef USE_XINERAMA + scrns = EXineramaQueryScreens(&num); + + mode = (XineramaIsActive(disp)) ? 1 : 0; + if (!mode && num > 0) + mode = 2; + + IpcPrintf("Xinerama mode: %s\n", mt[mode]); + + if (scrns) + { IpcPrintf("Xinerama screens:\n"); - IpcPrintf("Head Screen X-Origin Y-Origin Width Height\n"); for (i = 0; i < num; i++) IpcPrintf(" %2d %2d %5d %5d %5d %5d\n", i, scrns[i].screen_number, @@ -126,16 +159,11 @@ scrns[i].height); XFree(scrns); } - else - { - IpcPrintf("Xinerama is not active\n"); - } #endif - IpcPrintf("E-screens:\n"); - IpcPrintf("Head Screen X-Origin Y-Origin Width Height\n"); if (n_screens) { + IpcPrintf("E-screens:\n"); for (i = 0; i < n_screens; i++) { EScreen *ps = p_screens + i; @@ -144,11 +172,6 @@ i, ps->head, ps->x, ps->y, ps->w, ps->h); } } - else - { - IpcPrintf(" %2d %2d %5d %5d %5d %5d\n", - 0, Dpy.screen, 0, 0, WinGetW(VROOT), WinGetH(VROOT)); - } } void |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:30:47
|
Log: Slider tweaks. Author: kwo Date: 2008-11-14 10:30:41 -0800 (Fri, 14 Nov 2008) New Revision: 37627 Modified: trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-14 17:35:05 UTC (rev 37626) +++ trunk/E16/e/src/dialog.c 2008-11-14 18:30:41 UTC (rev 37627) @@ -60,7 +60,6 @@ ImageClass *ic_knob; char in_drag; - int wanted_val; Win base_win; Win knob_win; @@ -790,7 +789,6 @@ di->item.slider.numeric_w = 0; di->item.slider.numeric_h = 0; di->item.slider.in_drag = 0; - di->item.slider.wanted_val = 0; break; } @@ -2083,8 +2081,6 @@ static void DItemEventMotion(Win win __UNUSED__, DItem * di, XEvent * ev) { - int dx, dy; - switch (di->type) { case DITEM_AREA: @@ -2097,34 +2093,25 @@ break; if (ev->xmotion.window == WinGetXwin(di->item.slider.knob_win)) { - dx = Mode.events.mx - Mode.events.px; - dy = Mode.events.my - Mode.events.py; + int dx, sr, vr; + if (di->item.slider.horizontal) { - di->item.slider.wanted_val += dx; - di->item.slider.val = - di->item.slider.lower + - (((di->item.slider.wanted_val * - (di->item.slider.upper - - di->item.slider.lower)) / - (di->item.slider.base_w - - di->item.slider.knob_w)) / - di->item.slider.unit) * di->item.slider.unit; + sr = di->item.slider.base_w - di->item.slider.knob_w; + dx = ev->xbutton.x + di->item.slider.knob_x - + di->item.slider.knob_w / 2; } else { - di->item.slider.wanted_val += dy; - di->item.slider.val = - di->item.slider.lower + - ((((di->item. - slider.base_h - di->item.slider.knob_h - - di->item.slider.wanted_val) * - (di->item.slider.upper - - di->item.slider.lower)) / - (di->item.slider.base_h - - di->item.slider.knob_h)) / - di->item.slider.unit) * di->item.slider.unit; + sr = di->item.slider.base_h - di->item.slider.knob_h; + dx = ev->xbutton.y + di->item.slider.knob_y - + di->item.slider.knob_h / 2; + dx = sr - dx; } + vr = di->item.slider.upper - di->item.slider.lower; + dx = (int)(((float)dx / (sr * di->item.slider.unit)) * vr + .5); + dx *= di->item.slider.unit; + di->item.slider.val = di->item.slider.lower + dx; if (di->item.slider.val < di->item.slider.lower) di->item.slider.val = di->item.slider.lower; if (di->item.slider.val > di->item.slider.upper) @@ -2158,10 +2145,6 @@ if (ev->xbutton.button >= 1 && ev->xbutton.button <= 3) { di->item.slider.in_drag = 1; - if (di->item.slider.horizontal) - di->item.slider.wanted_val = di->item.slider.knob_x; - else - di->item.slider.wanted_val = di->item.slider.knob_y; break; } } |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:30:53
|
Log: More slider tweaks. Author: kwo Date: 2008-11-14 10:30:48 -0800 (Fri, 14 Nov 2008) New Revision: 37629 Modified: trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-14 18:30:45 UTC (rev 37628) +++ trunk/E16/e/src/dialog.c 2008-11-14 18:30:48 UTC (rev 37629) @@ -2039,7 +2039,24 @@ /* * Dialog event handlers */ +static int +_DlgPixToVal(const DItem * di, int dx, int sr) +{ + int vr, value; + vr = di->item.slider.upper - di->item.slider.lower; + dx = (int)(((float)dx / (sr * di->item.slider.unit)) * vr + .5); + dx *= di->item.slider.unit; + value = di->item.slider.lower + dx; + + if (value < di->item.slider.lower) + value = di->item.slider.lower; + if (value > di->item.slider.upper) + value = di->item.slider.upper; + + return value; +} + static void DialogEventKeyPress(Dialog * d, XEvent * ev) { @@ -2086,28 +2103,24 @@ break; if (ev->xmotion.window == WinGetXwin(di->item.slider.knob_win)) { - int dx, sr, vr; - if (di->item.slider.horizontal) { - sr = di->item.slider.base_w - di->item.slider.knob_w; - dx = ev->xbutton.x + di->item.slider.knob_x - - di->item.slider.knob_w / 2; + di->item.slider.val = + _DlgPixToVal(di, + ev->xbutton.x + di->item.slider.knob_x - + di->item.slider.knob_w / 2, + di->item.slider.base_w - + di->item.slider.knob_w); } else { - sr = di->item.slider.base_h - di->item.slider.knob_h; - dx = ev->xbutton.y + di->item.slider.knob_y - - di->item.slider.knob_h / 2; + di->item.slider.val = + _DlgPixToVal(di, + ev->xbutton.y + di->item.slider.knob_y - + di->item.slider.knob_h / 2, + di->item.slider.base_h - + di->item.slider.knob_h); } - vr = di->item.slider.upper - di->item.slider.lower; - dx = (int)(((float)dx / (sr * di->item.slider.unit)) * vr + .5); - dx *= di->item.slider.unit; - di->item.slider.val = di->item.slider.lower + dx; - if (di->item.slider.val < di->item.slider.lower) - di->item.slider.val = di->item.slider.lower; - if (di->item.slider.val > di->item.slider.upper) - di->item.slider.val = di->item.slider.upper; if (di->item.slider.val_ptr) *di->item.slider.val_ptr = di->item.slider.val; if (di->func) @@ -2169,11 +2182,21 @@ case 2: if (di->item.slider.horizontal) - di->item.slider.val = x * - (di->item.slider.upper - di->item.slider.lower) / di->w; + { + di->item.slider.val = + _DlgPixToVal(di, + ev->xbutton.x - di->item.slider.knob_w / 2, + di->item.slider.base_w - + di->item.slider.knob_w); + } else - di->item.slider.val = y * - (di->item.slider.upper - di->item.slider.lower) / di->h; + { + di->item.slider.val = + _DlgPixToVal(di, + ev->xbutton.y - di->item.slider.knob_h / 2, + di->item.slider.base_h - + di->item.slider.knob_h); + } break; case 4: |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:30:53
|
Log: Fix dialog text redraws when bg is tiled. Author: kwo Date: 2008-11-14 10:30:50 -0800 (Fri, 14 Nov 2008) New Revision: 37630 Modified: trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-14 18:30:48 UTC (rev 37629) +++ trunk/E16/e/src/dialog.c 2008-11-14 18:30:50 UTC (rev 37630) @@ -452,13 +452,12 @@ FreePmapMask(&(d->pmm_bg)); ImageclassApplyCopy(d->iclass, d->win, d->w, d->h, 0, 0, STATE_NORMAL, - &(d->pmm_bg), IC_FLAG_NONE, ST_DIALOG); + &(d->pmm_bg), IC_FLAG_FULL_SIZE, ST_DIALOG); if (d->pmm_bg.pmap == None) return; EGetWindowBackgroundPixmap(d->win); - EXCopyAreaTiled(d->pmm_bg.pmap, None, WinGetPmap(d->win), 0, 0, d->w, d->h, - 0, 0); + EXCopyArea(d->pmm_bg.pmap, WinGetPmap(d->win), 0, 0, d->w, d->h, 0, 0); d->redraw = 1; @@ -1669,7 +1668,7 @@ di->state = state; if (!di->text || !di->tclass) break; - if (!d->redraw) + if (!d->redraw || di->update) EXCopyArea(d->pmm_bg.pmap, WinGetPmap(d->win), di->x, di->y, di->w, di->h, di->x, di->y); TextDraw(di->tclass, d->win, WinGetPmap(d->win), 0, 0, state, di->text, @@ -1684,11 +1683,15 @@ static void DialogUpdate(Dialog * d) { - if (d->item) - DialogDrawItem(d, d->item); + do + { + d->update = 0; + if (d->item) + DialogDrawItem(d, d->item); + } + while (d->update); if (d->xu1 < d->xu2 && d->yu1 < d->yu2) EClearArea(d->win, d->xu1, d->yu1, d->xu2 - d->xu1, d->yu2 - d->yu1); - d->update = 0; d->xu1 = d->yu1 = 99999; d->xu2 = d->yu2 = 0; } |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:30:54
|
Log: Remove some redundant dialog code. Fix Multiple desktop selector area update. Author: kwo Date: 2008-11-14 10:30:53 -0800 (Fri, 14 Nov 2008) New Revision: 37631 Modified: trunk/E16/e/src/desktops.c Modified: trunk/E16/e/src/desktops.c =================================================================== --- trunk/E16/e/src/desktops.c 2008-11-14 18:30:50 UTC (rev 37630) +++ trunk/E16/e/src/desktops.c 2008-11-14 18:30:53 UTC (rev 37631) @@ -2249,17 +2249,14 @@ EMapWindow(wins[i]); } - for (i = tmp_desktops; i < (int)Conf.desks.num; i++) + for (i = tmp_desktops; i < ENLIGHTENMENT_CONF_NUM_DESKTOPS; i++) { if (!wins[i]) continue; EUnmapWindow(wins[i]); } - if (tmp_desktops > 1) - Esnprintf(s, sizeof(s), _("%i Desktops"), tmp_desktops); - else - Esnprintf(s, sizeof(s), _("%i Desktop"), tmp_desktops); + Esnprintf(s, sizeof(s), "%i", tmp_desktops); DialogItemSetText(tmp_desk_text, s); DialogDrawItems(d, tmp_desk_text, 0, 0, 99999, 99999); } @@ -2275,7 +2272,6 @@ _DlgFillDesks(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__) { DItem *di, *slider, *radio; - char s[64]; tmp_desktops = Conf.desks.num; tmp_desktop_slide = Conf.desks.slidein; @@ -2295,11 +2291,7 @@ di = tmp_desk_text = DialogAddItem(table, DITEM_TEXT); DialogItemSetColSpan(di, 2); - if (tmp_desktops > 1) - Esnprintf(s, sizeof(s), _("%i Desktops"), tmp_desktops); - else - Esnprintf(s, sizeof(s), _("%i Desktop"), tmp_desktops); - DialogItemSetText(di, s); + DialogItemSetText(di, "X"); di = slider = DialogAddItem(table, DITEM_SLIDER); DialogItemSliderSetBounds(di, 1, 32); @@ -2423,9 +2415,9 @@ char s[64]; DItem *di; Win win; - int w, h; + int w, h, ww, hh; - if ((val != 1) && ((prev_ax == tmp_area_x) && (prev_ay == tmp_area_y))) + if ((val != 1) && (prev_ax == tmp_area_x) && (prev_ay == tmp_area_y)) return; prev_ax = tmp_area_x; @@ -2449,16 +2441,12 @@ pmap = EGetWindowBackgroundPixmap(awin); ImageclassApplySimple(ic, awin, pmap, STATE_NORMAL, 0, 0, 18, 14); } - EMoveResizeWindow(awin, ((w / 2) - (9 * tmp_area_x)), - ((h / 2) - (7 * tmp_area_y)), 18 * tmp_area_x, - 14 * tmp_area_y); + ww = 18 * prev_ax; + hh = 14 * prev_ay; + EMoveResizeWindow(awin, (w - ww) / 2, (h - hh) / 2, ww, hh); EMapWindow(awin); - if ((tmp_area_x > 1) || (tmp_area_y > 1)) - Esnprintf(s, sizeof(s), _("%i x %i\nScreens in size"), - tmp_area_x, tmp_area_y); - else - Esnprintf(s, sizeof(s), _("1\nScreen in size")); + Esnprintf(s, sizeof(s), "%i x %i", prev_ax, prev_ay); DialogItemSetText(tmp_area_text, s); DialogDrawItems(d, tmp_area_text, 0, 0, 99999, 99999); } @@ -2473,7 +2461,6 @@ _DlgFillAreas(Dialog * d __UNUSED__, DItem * table, void *data __UNUSED__) { DItem *di, *slider, *slider2, *table2, *radio; - char s[64]; tmp_area_wraparound = Conf.desks.areas_wraparound; @@ -2488,12 +2475,7 @@ DialogItemSetText(di, _("Virtual Desktop size:\n")); di = tmp_area_text = DialogAddItem(table, DITEM_TEXT); - if ((tmp_area_x > 1) || (tmp_area_y > 1)) - Esnprintf(s, sizeof(s), _("%i x %i\nScreens in size"), - tmp_area_x, tmp_area_y); - else - Esnprintf(s, sizeof(s), _("1\nScreen in size")); - DialogItemSetText(di, s); + DialogItemSetText(di, "X"); table2 = DialogAddItem(table, DITEM_TABLE); DialogItemTableSetOptions(table2, 2, 0, 0, 0); |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:30:55
|
Log: Make coordinate system in vertical sliders same as in horizontal. Author: kwo Date: 2008-11-14 10:30:45 -0800 (Fri, 14 Nov 2008) New Revision: 37628 Modified: trunk/E16/e/src/backgrounds.c trunk/E16/e/src/desktops.c trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/backgrounds.c =================================================================== --- trunk/E16/e/src/backgrounds.c 2008-11-14 18:30:41 UTC (rev 37627) +++ trunk/E16/e/src/backgrounds.c 2008-11-14 18:30:45 UTC (rev 37628) @@ -1428,9 +1428,9 @@ tmp_bg->bg_tile = tmp_bg_tile; tmp_bg->bg.keep_aspect = tmp_bg_keep_aspect; tmp_bg->bg.xjust = tmp_bg_xjust; - tmp_bg->bg.yjust = 1024 - tmp_bg_yjust; + tmp_bg->bg.yjust = tmp_bg_yjust; tmp_bg->bg.xperc = tmp_bg_xperc; - tmp_bg->bg.yperc = 1024 - tmp_bg_yperc; + tmp_bg->bg.yperc = tmp_bg_yperc; if (!tmp_bg_image) BackgroundFilesRemove(tmp_bg); @@ -1467,13 +1467,13 @@ fbg = (tmp_bg_image) ? BackgroundGetBgFile(tmp_bg) : NULL; ffg = (tmp_bg_image) ? BackgroundGetFgFile(tmp_bg) : NULL; SET_COLOR(&color, tmp_bg_r, tmp_bg_g, tmp_bg_b); - bg = BackgroundCreate("TEMP", &color, fbg, tmp_bg_tile, - tmp_bg_keep_aspect, tmp_bg_xjust, - 1024 - tmp_bg_yjust, tmp_bg_xperc, - 1024 - tmp_bg_yperc, ffg, - tmp_bg->top.keep_aspect, tmp_bg->top.xjust, - tmp_bg->top.yjust, tmp_bg->top.xperc, - tmp_bg->top.yperc); + bg = BackgroundCreate("TEMP", &color, + fbg, tmp_bg_tile, tmp_bg_keep_aspect, + tmp_bg_xjust, tmp_bg_yjust, + tmp_bg_xperc, tmp_bg_yperc, + ffg, tmp_bg->top.keep_aspect, + tmp_bg->top.xjust, tmp_bg->top.yjust, + tmp_bg->top.xperc, tmp_bg->top.yperc); BackgroundApplyPmap(bg, win, pmap, w, h); BackgroundDestroy(bg); @@ -1490,9 +1490,9 @@ tmp_bg_tile = tmp_bg->bg_tile; tmp_bg_keep_aspect = tmp_bg->bg.keep_aspect; tmp_bg_xjust = tmp_bg->bg.xjust; - tmp_bg_yjust = 1024 - tmp_bg->bg.yjust; + tmp_bg_yjust = tmp_bg->bg.yjust; tmp_bg_xperc = tmp_bg->bg.xperc; - tmp_bg_yperc = 1024 - tmp_bg->bg.yperc; + tmp_bg_yperc = tmp_bg->bg.yperc; } static void @@ -1559,13 +1559,13 @@ SET_COLOR(&color, tmp_bg_r, tmp_bg_g, tmp_bg_b); - tmp_bg = BackgroundCreate(s, &color, tmp_bg->bg.file, tmp_bg_tile, - tmp_bg_keep_aspect, tmp_bg_xjust, - 1024 - tmp_bg_yjust, tmp_bg_xperc, - 1024 - tmp_bg_yperc, tmp_bg->top.file, - tmp_bg->top.keep_aspect, tmp_bg->top.xjust, - tmp_bg->top.yjust, tmp_bg->top.xperc, - tmp_bg->top.yperc); + tmp_bg = BackgroundCreate(s, &color, + tmp_bg->bg.file, tmp_bg_tile, tmp_bg_keep_aspect, + tmp_bg_xjust, tmp_bg_yjust, + tmp_bg_xperc, tmp_bg_yperc, + tmp_bg->top.file, tmp_bg->top.keep_aspect, + tmp_bg->top.xjust, tmp_bg->top.yjust, + tmp_bg->top.xperc, tmp_bg->top.yperc); DialogItemSliderGetBounds(bg_sel_slider, &lower, &upper); upper += 4; Modified: trunk/E16/e/src/desktops.c =================================================================== --- trunk/E16/e/src/desktops.c 2008-11-14 18:30:41 UTC (rev 37627) +++ trunk/E16/e/src/desktops.c 2008-11-14 18:30:45 UTC (rev 37628) @@ -2405,7 +2405,7 @@ { if (val < 2) { - SetNewAreaSize(tmp_area_x, 9 - tmp_area_y); + SetNewAreaSize(tmp_area_x, tmp_area_y); Conf.desks.areas_wraparound = tmp_area_wraparound; Conf.desks.edge_flip_mode = tmp_edge_flip; if (tmp_edge_resist < 1) @@ -2450,13 +2450,13 @@ ImageclassApplySimple(ic, awin, pmap, STATE_NORMAL, 0, 0, 18, 14); } EMoveResizeWindow(awin, ((w / 2) - (9 * tmp_area_x)), - ((h / 2) - (7 * (9 - tmp_area_y))), 18 * tmp_area_x, - 14 * (9 - tmp_area_y)); + ((h / 2) - (7 * tmp_area_y)), 18 * tmp_area_x, + 14 * tmp_area_y); EMapWindow(awin); - if ((tmp_area_x > 1) || ((9 - tmp_area_y) > 1)) - Esnprintf(s, sizeof(s), _("%i x %i\nScreens in size"), tmp_area_x, - 9 - tmp_area_y); + if ((tmp_area_x > 1) || (tmp_area_y > 1)) + Esnprintf(s, sizeof(s), _("%i x %i\nScreens in size"), + tmp_area_x, tmp_area_y); else Esnprintf(s, sizeof(s), _("1\nScreen in size")); DialogItemSetText(tmp_area_text, s); @@ -2481,7 +2481,6 @@ tmp_edge_resist = Conf.desks.edge_flip_resistance; DesksGetAreaSize(&tmp_area_x, &tmp_area_y); - tmp_area_y = 9 - tmp_area_y; DialogItemTableSetOptions(table, 1, 0, 0, 0); @@ -2490,8 +2489,8 @@ di = tmp_area_text = DialogAddItem(table, DITEM_TEXT); if ((tmp_area_x > 1) || (tmp_area_y > 1)) - Esnprintf(s, sizeof(s), _("%i x %i\nScreens in size"), tmp_area_x, - 9 - tmp_area_y); + Esnprintf(s, sizeof(s), _("%i x %i\nScreens in size"), + tmp_area_x, tmp_area_y); else Esnprintf(s, sizeof(s), _("1\nScreen in size")); DialogItemSetText(di, s); Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-14 18:30:41 UTC (rev 37627) +++ trunk/E16/e/src/dialog.c 2008-11-14 18:30:45 UTC (rev 37628) @@ -1552,27 +1552,20 @@ case DITEM_SLIDER: if (di->item.slider.horizontal) { - di->item.slider.knob_x = - di->item.slider.base_x + - (((di->item.slider.base_w - - di->item.slider.knob_w) * (di->item.slider.val - - di->item.slider.lower)) / + di->item.slider.knob_x = di->item.slider.base_x + + (((di->item.slider.base_w - di->item.slider.knob_w) * + (di->item.slider.val - di->item.slider.lower)) / (di->item.slider.upper - di->item.slider.lower)); - di->item.slider.knob_y = - di->item.slider.base_y + + di->item.slider.knob_y = di->item.slider.base_y + ((di->item.slider.base_h - di->item.slider.knob_h) / 2); } else { - di->item.slider.knob_y = - (di->item.slider.base_y + di->item.slider.base_h - - di->item.slider.knob_h) - - (((di->item.slider.base_h - - di->item.slider.knob_h) * (di->item.slider.val - - di->item.slider.lower)) / + di->item.slider.knob_y = di->item.slider.base_y + + (((di->item.slider.base_h - di->item.slider.knob_h) * + (di->item.slider.val - di->item.slider.lower)) / (di->item.slider.upper - di->item.slider.lower)); - di->item.slider.knob_x = - di->item.slider.base_x + + di->item.slider.knob_x = di->item.slider.base_x + ((di->item.slider.base_w - di->item.slider.knob_w) / 2); } if (di->item.slider.knob_win) @@ -2106,7 +2099,6 @@ sr = di->item.slider.base_h - di->item.slider.knob_h; dx = ev->xbutton.y + di->item.slider.knob_y - di->item.slider.knob_h / 2; - dx = sr - dx; } vr = di->item.slider.upper - di->item.slider.lower; dx = (int)(((float)dx / (sr * di->item.slider.unit)) * vr + .5); @@ -2169,9 +2161,9 @@ { if (ev->xbutton.y > (di->item.slider.knob_y + (di->item.slider.knob_h / 2))) - di->item.slider.val -= di->item.slider.jump; - else di->item.slider.val += di->item.slider.jump; + else + di->item.slider.val -= di->item.slider.jump; } break; @@ -2180,9 +2172,8 @@ di->item.slider.val = x * (di->item.slider.upper - di->item.slider.lower) / di->w; else - di->item.slider.val = ((di->h - y) * - (di->item.slider.upper - - di->item.slider.lower) / di->h); + di->item.slider.val = y * + (di->item.slider.upper - di->item.slider.lower) / di->h; break; case 4: |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:31:01
|
Log: Fix certain cases of clicking in slider. Author: kwo Date: 2008-11-14 10:30:58 -0800 (Fri, 14 Nov 2008) New Revision: 37633 Modified: trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-14 18:30:55 UTC (rev 37632) +++ trunk/E16/e/src/dialog.c 2008-11-14 18:30:58 UTC (rev 37633) @@ -2330,7 +2330,8 @@ break; } - di->hilited = 0; + if (!di->clicked) + di->hilited = 0; DialogDrawItems(di->dlg, di, di->x, di->y, di->w, di->h); } |
From: Enlightenment S. <no-...@en...> - 2008-11-14 18:31:00
|
Log: Keep slider knob highlited when over (noted by Don Harrop). Author: kwo Date: 2008-11-14 10:30:55 -0800 (Fri, 14 Nov 2008) New Revision: 37632 Modified: trunk/E16/e/src/dialog.c Modified: trunk/E16/e/src/dialog.c =================================================================== --- trunk/E16/e/src/dialog.c 2008-11-14 18:30:53 UTC (rev 37631) +++ trunk/E16/e/src/dialog.c 2008-11-14 18:30:55 UTC (rev 37632) @@ -1005,19 +1005,20 @@ di->win = ECreateWindow(d->win, -20, -20, 2, 2, 0); EMapWindow(di->win); ESelectInput(di->win, - EnterWindowMask | LeaveWindowMask | ButtonPressMask - | ButtonReleaseMask); + EnterWindowMask | LeaveWindowMask | + ButtonPressMask | ButtonReleaseMask); } di->item.slider.base_win = ECreateWindow(d->win, -20, -20, 2, 2, 0); EMapWindow(di->item.slider.base_win); di->item.slider.knob_win = ECreateWindow(d->win, -20, -20, 2, 2, 0); EMapWindow(di->item.slider.knob_win); ESelectInput(di->item.slider.base_win, - EnterWindowMask | LeaveWindowMask | ButtonPressMask | - ButtonReleaseMask); + EnterWindowMask | LeaveWindowMask | + ButtonPressMask | ButtonReleaseMask); EventCallbackRegister(di->item.slider.base_win, 0, DItemHandleEvents, di); ESelectInput(di->item.slider.knob_win, + EnterWindowMask | LeaveWindowMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask); EventCallbackRegister(di->item.slider.knob_win, 0, DItemHandleEvents, di); |
From: Enlightenment S. <no-...@en...> - 2008-11-15 14:16:30
|
Log: Update donthide state if window properties change. Author: kwo Date: 2008-11-15 06:16:28 -0800 (Sat, 15 Nov 2008) New Revision: 37665 Modified: trunk/E16/e/src/ewin-ops.c trunk/E16/e/src/ewins.c trunk/E16/e/src/ewins.h Modified: trunk/E16/e/src/ewin-ops.c =================================================================== --- trunk/E16/e/src/ewin-ops.c 2008-11-15 14:07:15 UTC (rev 37664) +++ trunk/E16/e/src/ewin-ops.c 2008-11-15 14:16:28 UTC (rev 37665) @@ -584,7 +584,7 @@ item = lst[i]; if (item == ewin || EwinIsTransient(item) || - item->state.iconified || item->props.donthide || + item->state.iconified || item->state.donthide || item->area_x != ewin->area_x || item->area_y != ewin->area_y) continue; EwinIconify(item); @@ -1356,7 +1356,7 @@ if (on) { if (EwinIsTransient(ewin) || - ewin->state.iconified || ewin->props.donthide) + ewin->state.iconified || ewin->state.donthide) continue; ewin->state.showingdesk = 1; Modified: trunk/E16/e/src/ewins.c =================================================================== --- trunk/E16/e/src/ewins.c 2008-11-15 14:07:15 UTC (rev 37664) +++ trunk/E16/e/src/ewins.c 2008-11-15 14:16:28 UTC (rev 37665) @@ -212,10 +212,6 @@ ewin->props.never_use_area = 1; ewin->props.donthide = 1; } - - if (ewin->props.skip_ext_task || ewin->props.skip_winlist || - ewin->props.skip_focuslist) - ewin->props.donthide = 1; } static void @@ -665,6 +661,10 @@ ewin->state.inhibit_close = EwinInhGetApp(ewin, close) || EwinInhGetUser(ewin, close); + ewin->state.donthide = ewin->props.donthide || + ewin->props.skip_ext_task || ewin->props.skip_winlist || + ewin->props.skip_focuslist; + SnapshotEwinUpdate(ewin, SNAP_USE_FLAGS); } Modified: trunk/E16/e/src/ewins.h =================================================================== --- trunk/E16/e/src/ewins.h 2008-11-15 14:07:15 UTC (rev 37664) +++ trunk/E16/e/src/ewins.h 2008-11-15 14:16:28 UTC (rev 37665) @@ -109,6 +109,7 @@ /* Derived state flags. Change only in EwinStateUpdate() */ unsigned no_border:1; + unsigned donthide:1; /* Don't hide on show desktop */ unsigned inhibit_move:1; unsigned inhibit_resize:1; |
From: Enlightenment S. <no-...@en...> - 2008-11-16 17:20:36
|
Log: Indent. Author: kwo Date: 2008-11-16 09:20:30 -0800 (Sun, 16 Nov 2008) New Revision: 37675 Modified: trunk/E16/e/src/ewins.c Modified: trunk/E16/e/src/ewins.c =================================================================== --- trunk/E16/e/src/ewins.c 2008-11-16 12:39:10 UTC (rev 37674) +++ trunk/E16/e/src/ewins.c 2008-11-16 17:20:30 UTC (rev 37675) @@ -662,8 +662,8 @@ EwinInhGetUser(ewin, close); ewin->state.donthide = ewin->props.donthide || - ewin->props.skip_ext_task || ewin->props.skip_winlist || - ewin->props.skip_focuslist; + ewin->props.skip_ext_task || ewin->props.skip_winlist || + ewin->props.skip_focuslist; SnapshotEwinUpdate(ewin, SNAP_USE_FLAGS); } |
From: Enlightenment S. <no-...@en...> - 2008-11-16 17:20:43
|
Log: We only need to save real border name. Author: kwo Date: 2008-11-16 09:20:33 -0800 (Sun, 16 Nov 2008) New Revision: 37676 Modified: trunk/E16/e/src/snaps.c Modified: trunk/E16/e/src/snaps.c =================================================================== --- trunk/E16/e/src/snaps.c 2008-11-16 17:20:30 UTC (rev 37675) +++ trunk/E16/e/src/snaps.c 2008-11-16 17:20:33 UTC (rev 37676) @@ -305,11 +305,7 @@ _SnapUpdateEwinBorder(Snapshot * sn, const EWin * ewin) { Efree(sn->border_name); - sn->border_name = NULL; - if (ewin->previous_border) - sn->border_name = Estrdup(BorderGetName(ewin->previous_border)); - else if (ewin->normal_border) - sn->border_name = Estrdup(BorderGetName(ewin->normal_border)); + sn->border_name = Estrdup(BorderGetName(ewin->normal_border)); } static void |
From: Enlightenment S. <no-...@en...> - 2008-11-16 17:20:44
|
Log: Change some function names. Author: kwo Date: 2008-11-16 09:20:37 -0800 (Sun, 16 Nov 2008) New Revision: 37677 Modified: trunk/E16/e/src/borders.c trunk/E16/e/src/borders.h trunk/E16/e/src/ewin-ops.c trunk/E16/e/src/groups.c trunk/E16/e/src/hints.c trunk/E16/e/src/snaps.c Modified: trunk/E16/e/src/borders.c =================================================================== --- trunk/E16/e/src/borders.c 2008-11-16 17:20:33 UTC (rev 37676) +++ trunk/E16/e/src/borders.c 2008-11-16 17:20:37 UTC (rev 37677) @@ -574,7 +574,7 @@ } void -EwinSetBorder(EWin * ewin, const Border * b, int apply) +EwinBorderChange(EWin * ewin, const Border * b, int apply) { if (!b || ewin->border == b || ewin->inh_wm.b.border) return; @@ -598,9 +598,9 @@ } void -EwinSetBorderByName(EWin * ewin, const char *name) +EwinBorderSetInitially(EWin * ewin, const char *name) { - EwinSetBorder(ewin, BorderFind(name), 0); + EwinBorderChange(ewin, BorderFind(name), 0); } static Border * Modified: trunk/E16/e/src/borders.h =================================================================== --- trunk/E16/e/src/borders.h 2008-11-16 17:20:33 UTC (rev 37676) +++ trunk/E16/e/src/borders.h 2008-11-16 17:20:37 UTC (rev 37677) @@ -92,8 +92,8 @@ void EwinBorderCalcSizes(EWin * ewin, int propagate); void EwinBorderMinShadeSize(EWin * ewin, int *mw, int *mh); void EwinBorderUpdateInfo(EWin * ewin); -void EwinSetBorder(EWin * ewin, const Border * b, int apply); -void EwinSetBorderByName(EWin * ewin, const char *name); +void EwinBorderChange(EWin * ewin, const Border * b, int apply); +void EwinBorderSetInitially(EWin * ewin, const char *name); int BorderWinpartIndex(EWin * ewin, Win win); void BorderCheckState(EWin * ewin, XEvent * ev); Border *BorderCreateFiller(int left, int right, int top, Modified: trunk/E16/e/src/ewin-ops.c =================================================================== --- trunk/E16/e/src/ewin-ops.c 2008-11-16 17:20:33 UTC (rev 37676) +++ trunk/E16/e/src/ewin-ops.c 2008-11-16 17:20:37 UTC (rev 37677) @@ -1717,7 +1717,7 @@ shadechange = 1; EwinInstantUnShade(gwins[i]); } - EwinSetBorder(gwins[i], b, 1); + EwinBorderChange(gwins[i], b, 1); if (shadechange) EwinInstantShade(gwins[i], 0); } Modified: trunk/E16/e/src/groups.c =================================================================== --- trunk/E16/e/src/groups.c 2008-11-16 17:20:33 UTC (rev 37676) +++ trunk/E16/e/src/groups.c 2008-11-16 17:20:37 UTC (rev 37677) @@ -526,7 +526,7 @@ if (b) { - EwinSetBorder(gwins[i], b, 1); + EwinBorderChange(gwins[i], b, 1); SnapshotEwinUpdate(gwins[i], SNAP_USE_GROUPS); } } Modified: trunk/E16/e/src/hints.c =================================================================== --- trunk/E16/e/src/hints.c 2008-11-16 17:20:33 UTC (rev 37676) +++ trunk/E16/e/src/hints.c 2008-11-16 17:20:37 UTC (rev 37677) @@ -461,7 +461,7 @@ ecore_x_window_prop_string_get(EwinGetClientXwin(ewin), E16_ATOM_WIN_BORDER); if (str) - EwinSetBorderByName(ewin, str); + EwinBorderSetInitially(ewin, str); Efree(str); if (EDebug(EDBUG_TYPE_SNAPS)) Modified: trunk/E16/e/src/snaps.c =================================================================== --- trunk/E16/e/src/snaps.c 2008-11-16 17:20:33 UTC (rev 37676) +++ trunk/E16/e/src/snaps.c 2008-11-16 17:20:37 UTC (rev 37677) @@ -1470,7 +1470,7 @@ ewin->state.shaded = sn->shaded; if (use_flags & SNAP_USE_BORDER) - EwinSetBorderByName(ewin, sn->border_name); + EwinBorderSetInitially(ewin, sn->border_name); if (use_flags & SNAP_USE_GROUPS) GroupsEwinAdd(ewin, sn->groups, sn->num_groups); |