[openbox] No UTF in WorkspaceSelector
smoynes at nexus.carleton.ca
smoynes at nexus.carleton.ca
Sat Feb 8 01:37:09 EST 2003
* Horst Gutmann (hgutmann at edu.uni-klu.ac.at) wrote:
> I'm not sure if this is a bug or if I just missed the option for
> enabling it, that's why I didn't report it as bug.
> The WorkspaceSelector (MidClick on Desktop) doesn't include UTF'd text
> but the WindowTitle does.
>
> Version: 2.3.0
Attached is a patch that should fix this. Could you test it and report
any difficulties?
s.
--
Scott Moynes http://www.icculus.org/openbox/
"Computer science is as much about computers
as astronomy is about telescopes." -- Dijkstra
-------------- next part --------------
? utf8fix.patch
Index: Basemenu.cc
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Basemenu.cc,v
retrieving revision 1.32.4.4
diff -p -u -r1.32.4.4 Basemenu.cc
--- Basemenu.cc 2003/01/11 20:37:49 1.32.4.4
+++ Basemenu.cc 2003/02/08 06:29:51
@@ -209,9 +209,9 @@ int Basemenu::insert(BasemenuItem *item,
}
-int Basemenu::insert(const string& label, int function,
+int Basemenu::insert(const string& label, bool utf, int function,
const string& exec, int pos) {
- BasemenuItem *item = new BasemenuItem(label, function, exec);
+ BasemenuItem *item = new BasemenuItem(label, utf, function, exec);
return insert(item, pos);
}
@@ -267,7 +267,7 @@ void Basemenu::update(void) {
unsigned int ii = 0;
MenuItems::iterator it = menuitems.begin(), end = menuitems.end();
for (; it != end; ++it) {
- ii = screen->getMenuStyle()->f_font->measureString((*it)->l, false) +
+ ii = screen->getMenuStyle()->f_font->measureString((*it)->l, (*it)->utf) +
(menu.bevel_w * 2) + (menu.item_h * 2);
menu.item_w = ((menu.item_w < ii) ? ii : menu.item_w);
@@ -533,6 +533,7 @@ void Basemenu::drawItem(int index, bool
bool dotext = True, dohilite = True, dosel = True, dooppsel = True;
const char *text = item->label();
+ const bool utf = item->getUTF();
const int sbl = index / menu.persub, i = index - (sbl * menu.persub);
const unsigned int half_w = menu.item_h / 2, quarter_w = menu.item_h / 4;
int item_x = (sbl * menu.item_w), item_y = (i * menu.item_h);
@@ -542,7 +543,7 @@ void Basemenu::drawItem(int index, bool
text_h = 0;
if (text) {
- text_w = screen->getMenuStyle()->f_font->measureString(text, false);
+ text_w = screen->getMenuStyle()->f_font->measureString(text, utf);
text_y = item_y + menu.bevel_w / 2;
switch(screen->getMenuStyle()->f_justify) {
@@ -678,7 +679,7 @@ void Basemenu::drawItem(int index, bool
(highlight ? style->h_text :
(item->isEnabled() ? style->f_text :
style->d_text)),
- text, false);
+ text, utf);
}
if (dosel && item->submenu()) {
Index: Basemenu.hh
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Basemenu.hh,v
retrieving revision 1.6.8.1
diff -p -u -r1.6.8.1 Basemenu.hh
--- Basemenu.hh 2003/01/03 20:47:09 1.6.8.1
+++ Basemenu.hh 2003/02/08 06:29:52
@@ -95,9 +95,10 @@ public:
inline const char *getLabel(void) const { return menu.label.c_str(); }
int insert(BasemenuItem *item, int pos);
- int insert(const std::string& label, int function = 0,
+ int insert(const std::string& label, bool utf, int function = 0,
const std::string& exec = "", int pos = -1);
- int insert(const std::string &label, Basemenu *submenu, int pos = -1);
+ int insert(const std::string &label, Basemenu *submenu,
+ int pos = -1);
int remove(int index);
void changeItemLabel(unsigned int index, const std::string& label);
@@ -150,6 +151,7 @@ class BasemenuItem {
private:
Basemenu *sub;
std::string l, e;
+ bool utf;
int f, enabled, selected;
friend class Basemenu;
@@ -157,10 +159,12 @@ private:
protected:
public:
- BasemenuItem(const std::string& lp, int fp = 0, const std::string& ep = ""):
- sub(0), l(lp), e(ep), f(fp), enabled(1), selected(0) {}
+ BasemenuItem(const std::string& lp, bool u, int fp = 0,
+ const std::string& ep = ""):
+ sub(0), l(lp), e(ep), utf(u), f(fp), enabled(1), selected(0) {}
BasemenuItem(const std::string& lp, Basemenu *mp): sub(mp), l(lp),
+ utf(false),
f(0), enabled(1),
selected(0) {}
@@ -175,6 +179,7 @@ public:
inline void setEnabled(int e) { enabled = e; }
inline int isSelected(void) const { return selected; }
inline void setSelected(int s) { selected = s; }
+ inline bool getUTF(void) { return utf; }
};
Index: Screen.cc
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Screen.cc,v
retrieving revision 1.147.2.11
diff -p -u -r1.147.2.11 Screen.cc
--- Screen.cc 2003/01/31 17:44:11 1.147.2.11
+++ Screen.cc 2003/02/08 06:29:56
@@ -1300,7 +1300,7 @@ void BScreen::addIcon(BlackboxWindow *w)
iconList.push_back(w);
const char* title = w->getIconTitle();
- iconmenu->insert(title);
+ iconmenu->insert(title, w->getIconTitleUtf());
iconmenu->update();
}
@@ -2044,11 +2044,14 @@ void BScreen::InitMenu(void) {
if (defaultMenu) {
rootmenu->setInternalMenu();
rootmenu->insert(i18n(ScreenSet, Screenxterm, "xterm"),
+ false,
BScreen::Execute,
i18n(ScreenSet, Screenxterm, "xterm"));
rootmenu->insert(i18n(ScreenSet, ScreenRestart, "Restart"),
+ false,
BScreen::Restart);
rootmenu->insert(i18n(ScreenSet, ScreenExit, "Exit"),
+ false,
BScreen::Exit);
rootmenu->setLabel(i18n(BasemenuSet, BasemenuBlackboxMenu,
"Openbox Menu"));
@@ -2129,7 +2132,7 @@ bool BScreen::parseMenuFile(FILE *file,
case 'n'+'o'+'p': // nop
if (! *label)
label[0] = '\0';
- menu->insert(label);
+ menu->insert(label, false);
break;
@@ -2141,7 +2144,7 @@ bool BScreen::parseMenuFile(FILE *file,
continue;
}
- menu->insert(label, BScreen::Execute, command);
+ menu->insert(label, false, BScreen::Execute, command);
break;
@@ -2153,7 +2156,7 @@ bool BScreen::parseMenuFile(FILE *file,
continue;
}
- menu->insert(label, BScreen::Exit);
+ menu->insert(label, false, BScreen::Exit);
break;
@@ -2168,7 +2171,7 @@ bool BScreen::parseMenuFile(FILE *file,
string style = expandTilde(command);
- menu->insert(label, BScreen::SetStyle, style.c_str());
+ menu->insert(label, false, BScreen::SetStyle, style.c_str());
}
break;
@@ -2252,9 +2255,9 @@ bool BScreen::parseMenuFile(FILE *file,
}
if (*command)
- menu->insert(label, BScreen::RestartOther, command);
+ menu->insert(label, false, BScreen::RestartOther, command);
else
- menu->insert(label, BScreen::Restart);
+ menu->insert(label, false, BScreen::Restart);
}
break;
@@ -2268,7 +2271,7 @@ bool BScreen::parseMenuFile(FILE *file,
continue;
}
- menu->insert(label, BScreen::Reconfigure);
+ menu->insert(label, false, BScreen::Reconfigure);
}
break;
@@ -2339,7 +2342,7 @@ bool BScreen::parseMenuFile(FILE *file,
style += fname;
if (! stat(style.c_str(), &statbuf) && S_ISREG(statbuf.st_mode))
- stylesmenu->insert(fname, BScreen::SetStyle, style);
+ stylesmenu->insert(fname, false, BScreen::SetStyle, style);
}
stylesmenu->update();
Index: Slit.cc
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Slit.cc,v
retrieving revision 1.33
diff -p -u -r1.33 Slit.cc
--- Slit.cc 2002/07/26 08:37:15 1.33
+++ Slit.cc 2003/02/08 06:29:57
@@ -848,7 +848,7 @@ Slitmenu::Placementmenu::Placementmenu(S
Slit::BottomLeft);
insert(i18n(CommonSet, CommonPlacementTopCenter, "Top Center"),
Slit::TopCenter);
- insert("");
+ insert("", false);
insert(i18n(CommonSet, CommonPlacementBottomCenter, "Bottom Center"),
Slit::BottomCenter);
insert(i18n(CommonSet, CommonPlacementTopRight, "Top Right"),
Index: Windowmenu.cc
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Windowmenu.cc,v
retrieving revision 1.12
diff -p -u -r1.12 Windowmenu.cc
--- Windowmenu.cc 2002/08/20 15:38:49 1.12
+++ Windowmenu.cc 2003/02/08 06:30:04
@@ -189,7 +189,7 @@ void Windowmenu::SendtoWorkspacemenu::up
for (i = 0; i < workspace_count; ++i) {
if (r < workspace_count) {
- insert(getScreen()->getWorkspace(i)->getName());
+ insert(getScreen()->getWorkspace(i)->getName(), false);
++r;
} else {
changeItemLabel(i, getScreen()->getWorkspace(i)->getName());
Index: Workspace.cc
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Workspace.cc,v
retrieving revision 1.95
diff -p -u -r1.95 Workspace.cc
--- Workspace.cc 2002/10/01 01:59:09 1.95
+++ Workspace.cc 2003/02/08 06:30:05
@@ -100,7 +100,7 @@ void Workspace::addWindow(BlackboxWindow
windowList.push_back(w);
- clientmenu->insert(w->getTitle());
+ clientmenu->insert(w->getTitle(), w->getTitleUtf());
clientmenu->update();
if (! sticky)
Index: Workspacemenu.cc
===================================================================
RCS file: /cvs/cvsroot/openbox/src/Attic/Workspacemenu.cc,v
retrieving revision 1.6
diff -p -u -r1.6 Workspacemenu.cc
--- Workspacemenu.cc 2002/07/14 20:54:03 1.6
+++ Workspacemenu.cc 2003/02/08 06:30:05
@@ -38,8 +38,8 @@ Workspacemenu::Workspacemenu(BScreen *sc
setInternalMenu();
setLabel(i18n(WorkspacemenuSet, WorkspacemenuWorkspacesTitle, "Workspaces"));
- insert(i18n(WorkspacemenuSet, WorkspacemenuNewWorkspace, "New Workspace"));
- insert(i18n(WorkspacemenuSet, WorkspacemenuRemoveLast, "Remove Last"));
+ insert(i18n(WorkspacemenuSet, WorkspacemenuNewWorkspace, "New Workspace"), false);
+ insert(i18n(WorkspacemenuSet, WorkspacemenuRemoveLast, "Remove Last"), false);
}
More information about the openbox
mailing list