Skip to content

Commit

Permalink
[Textbox] Add 'placeholder-markup' flag.
Browse files Browse the repository at this point in the history
Fixes: #1690
  • Loading branch information
DaveDavenport committed Aug 28, 2022
1 parent cb6afae commit fce721a
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 3 deletions.
2 changes: 2 additions & 0 deletions doc/rofi-theme.5
Original file line number Diff line number Diff line change
Expand Up @@ -1501,6 +1501,8 @@ This option is only available on the \fB\fCelement-text\fR widget.
.IP \(bu 2
\fBplaceholder\fP: Set the displayed text (String) when nothing is entered.
.IP \(bu 2
\fBplaceholder-markup\fP: If true, placeholder text supports pango markup for stylizing.
.IP \(bu 2
\fBplaceholder-color\fP: Color of the placeholder text.
.IP \(bu 2
\fBblink\fP: Enable/Disable blinking on an input textbox (Boolean).
Expand Down
1 change: 1 addition & 0 deletions doc/rofi-theme.5.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -929,6 +929,7 @@ The following properties are currently supported:
* **width**: override the desired width for the textbox.
* **content**: Set the displayed text (String).
* **placeholder**: Set the displayed text (String) when nothing is entered.
* **placeholder-markup**: If true, placeholder text supports pango markup for stylizing.
* **placeholder-color**: Color of the placeholder text.
* **blink**: Enable/Disable blinking on an input textbox (Boolean).
* **markup**: Force markup on, beware that only valid pango markup strings are shown.
Expand Down
2 changes: 1 addition & 1 deletion include/widgets/textbox.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ typedef struct {
unsigned long flags;
short cursor;
char *text;
const char *placeholder;
char *placeholder;
int show_placeholder;
PangoLayout *layout;
int tbft;
Expand Down
9 changes: 7 additions & 2 deletions source/widgets/textbox.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,11 @@ textbox *textbox_create(widget *parent, WidgetType type, const char *name,
const char *placeholder =
rofi_theme_get_string(WIDGET(tb), "placeholder", NULL);
if (placeholder) {
tb->placeholder = placeholder;
if (rofi_theme_get_boolean(WIDGET(tb), "placeholder-markup", FALSE)) {
tb->placeholder = g_strdup(placeholder);
} else {
tb->placeholder = g_markup_escape_text(placeholder, -1);
}
}
textbox_text(tb, txt ? txt : "");
textbox_cursor_end(tb);
Expand Down Expand Up @@ -310,7 +314,7 @@ static void __textbox_update_pango_text(textbox *tb) {
pango_layout_set_attributes(tb->layout, NULL);
if (tb->placeholder && (tb->text == NULL || tb->text[0] == 0)) {
tb->show_placeholder = TRUE;
pango_layout_set_text(tb->layout, tb->placeholder, -1);
pango_layout_set_markup(tb->layout, tb->placeholder, -1);
return;
}
tb->show_placeholder = FALSE;
Expand Down Expand Up @@ -442,6 +446,7 @@ static void textbox_free(widget *wid) {
}
g_free(tb->text);

g_free(tb->placeholder);
if (tb->layout != NULL) {
g_object_unref(tb->layout);
}
Expand Down

0 comments on commit fce721a

Please sign in to comment.