Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Plasma
KWayland Server
Commits
1e6da576
Commit
1e6da576
authored
Feb 20, 2021
by
Vlad Zahorodnii
Browse files
Simplify handling of inert input method context
If the input method context object becomes inert, just delete it.
parent
e004156a
Pipeline
#55196
passed with stage
in 7 minutes and 7 seconds
Changes
1
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
src/server/inputmethod_v1_interface.cpp
View file @
1e6da576
...
...
@@ -126,14 +126,6 @@ public:
return
ret
;
}
void
zwp_input_method_context_v1_destroy_resource
(
Resource
*
resource
)
override
{
Q_UNUSED
(
resource
)
if
(
resourceMap
().
isEmpty
())
{
delete
q
;
}
}
void
zwp_input_method_context_v1_destroy
(
Resource
*
resource
)
override
{
wl_resource_destroy
(
resource
->
handle
);
...
...
@@ -374,17 +366,12 @@ public:
}
auto
addedResource
=
m_context
->
d
->
add
(
resource
->
client
(),
resource
->
version
());
if
(
m_enabled
)
{
send_activate
(
resource
->
handle
,
addedResource
->
handle
);
}
send_activate
(
resource
->
handle
,
addedResource
->
handle
);
}
QPointer
<
InputMethodContextV1Interface
>
m_context
;
InputMethodContextV1Interface
*
m_context
=
nullptr
;
InputMethodV1Interface
*
const
q
;
Display
*
const
m_display
;
bool
m_enabled
=
false
;
};
InputMethodV1Interface
::
InputMethodV1Interface
(
Display
*
d
,
QObject
*
parent
)
...
...
@@ -397,14 +384,12 @@ InputMethodV1Interface::~InputMethodV1Interface() = default;
void
InputMethodV1Interface
::
sendActivate
()
{
if
(
d
->
m_
enabled
)
{
if
(
d
->
m_
context
)
{
return
;
}
Q_ASSERT
(
!
d
->
m_context
);
d
->
m_context
=
new
InputMethodContextV1Interface
(
this
);
d
->
m_enabled
=
true
;
for
(
auto
resource
:
d
->
resourceMap
())
{
auto
connection
=
d
->
m_context
->
d
->
add
(
resource
->
client
(),
resource
->
version
());
d
->
send_activate
(
resource
->
handle
,
connection
->
handle
);
...
...
@@ -413,18 +398,18 @@ void InputMethodV1Interface::sendActivate()
void
InputMethodV1Interface
::
sendDeactivate
()
{
if
(
!
d
->
m_
enabled
)
{
if
(
!
d
->
m_
context
)
{
return
;
}
d
->
m_enabled
=
false
;
if
(
d
->
m_context
)
{
for
(
auto
resource
:
d
->
resourceMap
())
{
auto
connection
=
d
->
m_context
->
d
->
resourceMap
().
value
(
resource
->
client
());
for
(
auto
resource
:
d
->
resourceMap
())
{
auto
connection
=
d
->
m_context
->
d
->
resourceMap
().
value
(
resource
->
client
());
if
(
connection
)
{
d
->
send_deactivate
(
resource
->
handle
,
connection
->
handle
);
}
d
->
m_context
=
nullptr
;
}
delete
d
->
m_context
;
d
->
m_context
=
nullptr
;
}
InputMethodContextV1Interface
*
InputMethodV1Interface
::
context
()
const
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment